Oli*_*app 2 apache .htaccess mod-rewrite url-redirection
我有一个mod_rewrite配置的问题.
我想将所有内容重定向到根目录(http://www.mydomain.com/),但两个文件除外.
所以我尝试了这个:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^/
RewriteCond %{REQUEST_FILENAME} !/file1.html
RewriteCond %{REQUEST_FILENAME} !/file2.html
RewriteRule ^(.*)$ http://www.mydomain.com/ [L,R=301]
Run Code Online (Sandbox Code Playgroud)
这不幸的是没有重定向任何东西.
如果我省略第一个RewriteCond行,我会收到重定向错误.
我在哪里错了?
首先,你可能想要使用REQUEST_URI而不是REQUEST_FILENAME.它们在虚拟主机方案中可能相同,但通常不一样.您可能意味着重写URI,而不是本地路径.
其次,你的规则;
RewriteCond %{REQUEST_FILENAME} !^/
Run Code Online (Sandbox Code Playgroud)
...排除的东西所有的请求开始/,也就是所有的URI,被重写.你可能想要做的是;
RewriteCond %{REQUEST_URI} !^/$
Run Code Online (Sandbox Code Playgroud)
被忽略文件的规则最后可能还有一个额外$的"结束"匹配而不是"包含"匹配.
这留下了类似的东西;
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !/file1.html$
RewriteCond %{REQUEST_URI} !/file2.html$
RewriteRule ^(.*)$ http://www.mydomain.com/ [L,R=301]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7048 次 |
| 最近记录: |