GVKun编程网logo

mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php(remote_file_id)

8

对于想了解mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php的读者,本文将是一篇不可错过的文章,我们将详细介绍remote_file_id,并且为您

对于想了解mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php的读者,本文将是一篇不可错过的文章,我们将详细介绍remote_file_id,并且为您提供关于.gitignore排除文件夹,但包括特定的子文件夹、.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?、.htaccess – 无声地重写/redirect到内部子文件夹、.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹的有价值信息。

本文目录一览:

mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php(remote_file_id)

mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php(remote_file_id)

我需要创build以下规则放置在我的.htaccess中

首先,我想在主文件夹中删除文件(/)(如果requestedfile存在)

其次,我想在子文件夹 – > /子文件夹中search这个文件

如果文件不存在于第1点和第2点中,就像redirect请求一样,执行/index.PHP

什么是最好的方式来做到这一点。

感谢帮助 :)

ps第一点可以作为一个简单的解决scheme被淘汰。 所以如果用户inputurl /file.jpeg,服务器将会在/子文件夹中search这个文件,如果没有find这个文件,它会redirectrquest do index.PHP

为什么不是我的JavaScript和CSScaching?

在共享主机上的Symfony的htaccess

.htaccessredirecthttps到http不能正常工作

特殊字符和URL重写

添加过期标题没有mod_expires?

为什么如果我在我的htaccess的规则中join“ – ”破折号不起作用?

redirect规则与特殊字符

使用查询string将urlredirect到url友好的目录,例如url

HTTPS强制redirect不能在wordpress中工作

将旧url改写为漂亮的url,并使用.htaccessredirect旧url

我假设你的网址是这样的: somesite.com/subfolder/file.extension 如果URL不同,请提供详细信息。

将这添加到您的DocumentRoot的.htaccess 。

Options +FollowSymLinks -MultiViews -Indexes RewriteEngine on RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule ^ - [L] RewriteCond %{REQUEST_URI} ^/([w]+)/([w]+.[w]+)$ [NC] RewriteCond %{DOCUMENT_ROOT}/%2 -f RewriteRule ^ /%2 [NC,L] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ - [L] RewriteRule ^ /index.PHP [L]

改为适合OP的要求。

RewriteEngine on RewriteBase / RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule ^ - [L] RewriteCond %{REQUEST_URI} ([w]+.[w]+)$ [NC] RewriteCond %{DOCUMENT_ROOT}/%1 -f RewriteRule ^ /%1 [NC,L] RewriteCond %{REQUEST_URI} ([w]+.[w]+)$ [NC] RewriteCond %{DOCUMENT_ROOT}/subdir/%1 -f RewriteRule ^ /subdir/%1 [L] RewriteRule ^ /index.PHP [L]

这只是ThinkingMonkey概述的补充。 正如我所评论的,%变量只在下一个 cond或规则上可用。 然而,规则$变量对于conds和规则替换字符串都是可用的,因此规则2应该被写为(关于使用DOCUMENT_ROOT的相同注意事项):

RewriteCond %{DOCUMENT_ROOT}/$1 -f RewriteRule w+/(w+.w+)$ $1 [NC,L]

或者如果你想做相反的事情

RewriteCond %{DOCUMENT_ROOT}/subdir/$1 -f RewriteRule (w+.w+)$ subdir/$1 [NC,L]

总结

以上是小编为你收集整理的mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.php全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.gitignore排除文件夹,但包括特定的子文件夹

.gitignore排除文件夹,但包括特定的子文件夹

我有文件夹application/我添加到.gitignore 。 在application/文件夹中是文件夹application/language/gr 。 如何包含此文件夹?

我已经试过了

application/
!application/language/gr/

没有运气...


#1楼

@Chris Johnsen的答案很好,但是对于较新版本的Git(1.8.2或更高版本),您可以利用双星号模式来获得更多速记解决方案:

# assuming the root folder you want to ignore is ''application''
application/**/*

# the subfolder(s) you want to track:
!application/language/gr/

这样,您不必“忽略”要跟踪的子文件夹的父目录。


对于Git 2.17.0(不确定此版本的发布时间。可能回到1.8.2之前的版本),对导致文件生成的每个子目录使用**模式与excludes结合使用。 例如:

# assuming the root folder you want to ignore is ''application''
application/**

# Explicitly track certain content nested in the ''application'' folder:
!application/language/
!application/language/gr/
!application/language/gr/** # Example adding all files & folder in the ''gr'' folder
!application/language/gr/SomeFile.txt # Example adding specific file in the ''gr'' folder

#2楼

来自Karsten Blees(kblees)的Git 1.9 / 2.0 提交59856de (2014年第1季度)澄清了以下情况:

gitignore.txt :阐明排除目录的递归性质

可选的前缀“ ! ”,用于否定模式; 先前模式排除的所有匹配文件将再次包含在内。

如果排除该文件的父目录,则无法重新包含该文件。 *
* :除非git 2.8+中满足某些条件,请参阅下文)
由于性能原因,Git不会列出被排除的目录,因此包含在文件上的任何模式(无论它们在何处定义)都无效。

对于以文字“ ! ”开头的模式,例如“ \\!important!.txt ”,在第一个“ ! ”前面放置反斜杠(“ \\ ”)。

排除特定目录foo/bar以外的所有内容的示例(请注意/* -不带斜杠,通配符还将排除foo/bar内的所有内容):

 --------------------------------------------------------------
     $ cat .gitignore
     # exclude everything except directory foo/bar
     /*
     !/foo
     /foo/*
     !/foo/bar
 --------------------------------------------------------------

在您的情况下:

application/*
!application/**/
application/language/*
!application/language/**/
!application/language/gr/**

您必须先将文件夹列入白名单,然后才能将给定文件夹中的文件列入白名单。


2016年2月/ 3月更新:

请注意,在git 2.9.x / 2.10(2016年中?)下, 如果重新包含的路径中没有通配符,则如果排除了该文件的父目录,则可以重新包含该文件。

NguyễnTháiNgọcDuy( pclouds )试图添加此功能:

  • 提交 git v2.7.0的506d8f1,已在提交76b620d git v2.8.0-rc0中恢复
  • 在5cee3493 git 2.8.0中恢复5e57f9c git v2.8.0-rc0,... reverted(!)

因此,使用git 2.9+可能确实有效,但最终被还原:

application/
!application/language/gr/

#3楼

关于此还有很多类似的问题,因此我将发布我之前写的内容:

我在计算机上使用此方法的唯一方法是这样做:

# Ignore all directories, and all sub-directories, and it''s contents:
*/*

#Now ignore all files in the current directory 
#(This fails to ignore files without a ".", for example 
#''file.txt'' works, but 
#''file'' doesn''t):
*.*

#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
!wordpress/*/wp-content/themes/*
!wordpress/*/wp-content/themes/*/*
!wordpress/*/wp-content/themes/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*/*

请注意,您必须如何明确允许要包含的每个级别的内容。 因此,如果我在主题下有5个子目录,则仍然需要清楚地说明。

这是来自@Yarin的评论: https : //stackoverflow.com/a/5250314/1696153

这些是有用的主题:

  • 否定模式在.gitignore中如何工作?
  • gitignore排除规则实际上如何工作?

我也试过

*
*/*
**/**

**/wp-content/themes/**

/wp-content/themes/**/*

这些都不对我有用。 大量的反复试验!


#4楼

因此,由于许多程序员都使用node。 满足此问题的用例是排除一个模块module-a以外的node_modules ,例如:

!node_modules/

node_modules/*
!node_modules/module-a/

#5楼

走下目录结构以获取所需内容的另一个示例。 注意:我没有排除Library/而是Library/**/*

# .gitignore file
Library/**/*
!Library/Application Support/
!Library/Application Support/Sublime Text 3/
!Library/Application Support/Sublime Text 3/Packages/
!Library/Application Support/Sublime Text 3/Packages/User/
!Library/Application Support/Sublime Text 3/Packages/User/*macro
!Library/Application Support/Sublime Text 3/Packages/User/*snippet
!Library/Application Support/Sublime Text 3/Packages/User/*settings
!Library/Application Support/Sublime Text 3/Packages/User/*keymap
!Library/Application Support/Sublime Text 3/Packages/User/*theme
!Library/Application Support/Sublime Text 3/Packages/User/**/
!Library/Application Support/Sublime Text 3/Packages/User/**/*macro
!Library/Application Support/Sublime Text 3/Packages/User/**/*snippet
!Library/Application Support/Sublime Text 3/Packages/User/**/*settings
!Library/Application Support/Sublime Text 3/Packages/User/**/*keymap
!Library/Application Support/Sublime Text 3/Packages/User/**/*theme

> git add Library

> git status

On branch master
Your branch is up-to-date with ''origin/master''.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   Library/Application Support/Sublime Text 3/Packages/User/Default (OSX).sublime-keymap
    new file:   Library/Application Support/Sublime Text 3/Packages/User/ElixirSublime.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/Package Control.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/Preferences.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/RESTer.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/SublimeLinter/Monokai (SL).tmTheme
    new file:   Library/Application Support/Sublime Text 3/Packages/User/TextPastryHistory.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/ZenTabs.sublime-settings
    new file:   Library/Application Support/Sublime Text 3/Packages/User/adrian-comment.sublime-macro
    new file:   Library/Application Support/Sublime Text 3/Packages/User/json-pretty-generate.sublime-snippet
    new file:   Library/Application Support/Sublime Text 3/Packages/User/raise-exception.sublime-snippet
    new file:   Library/Application Support/Sublime Text 3/Packages/User/trailing_spaces.sublime-settings

.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?

.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?

我希望我的访问者只能访问我的网站(博客)的特定部分。 如果他们尝试访问网站的其他区域,我希望他们redirect到博客部分。

我也希望这适用于除了我的IP地址的每个人。

所以结构如下:

mysite.com/blog // visitor access allowed

mod_rewrite {QUERY_STRING}

三.htaccess到期规则的区别

允许在Content Security Policy(CSP)中通过$ .getscript()插入file.js

RewriteCond以任意顺序匹配查询string参数

禁止您无权访问/在此服务器上。 服务器无法读取htaccess文件,拒绝访问是安全的

mysite.com // redirect to mysite.com/blog mysite.com/forum // redirect to mysite.com/blog mysite.com/tools // redirect to mysite.com/blog etc...

你有一个关于如何通过.htaccess mod_rewrite做这个build议吗?

漂亮的URL与.htaccess

剥离未列入白名单的URL中的任何参数

.htaccess平面链接的重写规则

摆脱CodeIgniterurl中的Index.PHP

保护目录免受直接的URL访问

您应该能够重定向到以下内容:

RewriteCond %{REMOTE_HOST} !^123.456.789 RewriteCond %{REQUEST_URI} !^/blog/? RewriteCond %{REQUEST_URI} /(.*)$ RewriteRule (.*) /blog [R=301,L]

你应该创建一个页面来处理特定的重定向,然后编辑你的htaccess文件是这样的:

Options +FollowSymlinks RewriteEngine on #not your IP RewriteCond %{REMOTE_HOST} !^123.123.123.123 #make sure the rule allows everyone to access the redirect page RewriteCond %{REQUEST_URI} !/redirect_page.html$ #Send them to the redirect page RewriteRule .html$ /redirect_page.html [R=302,L]

rediret_page.html可以使用js或服务器端重定向来处理它们最终的位置,但是它会强制每个没有通过处理重定向的特定页面来访问IP地址的人。

总结

以上是小编为你收集整理的.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess – 无声地重写/redirect到内部子文件夹

.htaccess – 无声地重写/redirect到内部子文件夹

比方说,我有这个www.example.com网站结构:

/srv/http/ /srv/http/site/index.PHP /srv/http/site/stuff.PHP

我想要以下重写/redirect发生:

www.example.com/index.PHP – >redirect到 – > www.example.com/site/index.PHP – >但用户看到 – > www.example.com/index.PHP

www.example.com/stuff.PHP – >redirect到 – > www.example.com/site/stuff.PHP – >但用户看到 – > www.example.com/stuff.PHP

使用HTTP_HOST来标识以前的主机名称

Apache mod Rewrite:如何重写这些URL来制作干净的URL

修改重写THE_REQUEST和(REQUEST_URI或REQUEST_FILE)给不同的文件名 – 为什么?

将http和https请求redirect到新主机

如何从根redirect到子文件夹,重写子文件夹链接看起来像根,然后在htaccess中添加一些例外?

一般来说, www.example.com/之后的所有内容都会redirect到www.example.com/site/ 。 但用户在浏览器中看到原始URL。

我在互联网上四处张望,但还没有设法弄清楚在这个特定的情况下使用什么。

我试着重写一切:

RewriteEngine On RewriteRule ^$ /site [L]

但是index.PHP消失, www.example.com/site/显示给用户。

我如何使用.htaccess来解决这个问题?

国防部重写假的子域名?

Htaccess访问/下载

htaccess if语句

.htaccess RewriteRule添加到URL的驱动器path

在.htaccess中的不同协议的URL重写

您需要捕获传入服务器的url请求,如下所示:

RewriteEngine On RewriteCond %{REQUEST_URI} !^/site/ RewriteRule ^(.*)$ /site/$1 [L,QSA]

QSA (最终)也将查询字符串追加到重写的url

与@guido建议的想法相同,但是使用负向预测缩短了一点

RewriteEngine On RewriteRule ^(?!site/)(.*)$ site/$1 [L]

注意:我没有使用QSA标志,因为我们没有向替换URL的查询字符串添加附加参数。 默认情况下,Apache将传递原始查询字符串以及替换URL。

http://www.example.com/index.PHP?one=1&two=2

将被内部重写为

http://www.example.com/site/index.PHP?one=1&two=2

如果你真的想在每个重写的查询字符串中添加一个特殊的参数(例如: mode=rewrite ),那么你可以使用QSA Query String Append标志

RewriteEngine On RewriteRule ^(?!site/)(.*)$ site/$1?mode=rewrite [L,QSA]

然后这将结合mode=rewrite与原始查询字符串

http://www.example.com/index.PHP?one=1&two=2

http://www.example.com/site/index.PHP?mode=rewrite&one=1&two=2

RewriteEngine On RewriteRule ^(.*)$ site/index.PHP?var=$1 [L]

有了这个规则,我把所有的请求传递给site / index.PHP,所以你可以通过$ _GET [''var'']得到请求的uri,然后你就可以让index.PHP在场景后面提供请求的url而不会在用户的浏览器中更改网址。 再见。

总结

以上是小编为你收集整理的.htaccess – 无声地重写/redirect到内部子文件夹全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹

.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹

我想redirect以下url:

/gallery/image-1/ /gallery/image-1 /gallery/image-2/ /gallery/image-2

到/gallery/ ,但它比它看起来更难。 这是来自.htaccess:

RewriteEngine On RewriteRule ^gallery/(.*) /gallery/ [R=301,L,NC]

所有url最初都被redirect到/gallery/ ,但是它只是继续加载,显然这个url也在^gallery/(.*)之下,所以它会一直redirect到同一个URL。 几秒钟后,浏览器给我一个ERR_TOO_MANY_REDIRECTS消息。

如何编辑^gallery/(.*)语句以仅覆盖/gallery/ URL之后的某个URL?

htaccess重写到子域

htaccess自动检测域名

需要在.htaccess重写规则中转义#(哈希/磅)字符

当数据库中缺less项目时,PHP或htaccess使dynamicURL页面去404

请求超过了10个内部redirect的限制

503 htaccess文件只能部分工作

使用GET参数时,Apache Redirect 301失败,例如?blah =

recursionmod_rewritesearch引擎友好的url

如何将symfony /web/app.PHP移动到/root/app.PHP

Apache重写所有的pathindex.PHP

你应该在你的正则表达式中使用.+而不是.*来确保在URI为/gallery/时停止重定向:

RewriteEngine On RewriteRule ^(gallery)/.+$ /$1/ [R=301,NC]

总结

以上是小编为你收集整理的.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

关于mod_rewrite:如何search本地文件夹,子文件夹,然后redirect到index.phpremote_file_id的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.gitignore排除文件夹,但包括特定的子文件夹、.htaccess mod_rewrite基于IP的redirect:如何将所有stream量redirect到特定的子目录,除了我的IP?、.htaccess – 无声地重写/redirect到内部子文件夹、.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹等相关内容,可以在本站寻找。

本文标签: