我的.htaccess文件中有8行重写规则。我需要从这些规则中排除服务器上的两个物理目录,以便它们可以访问。现在所有的请求都被发送到index.php文件。
要排除的目录:“admin”和“user”。
所以http请求:http://www.domain.com/admin/不应传递到index.php文件。
ErrorDocument 404 /index.php?mod=error404
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L]
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
字符串
6条答案
按热度按时间6fe3ivhb1#
请在尝试其他规则之前先尝试此规则:
字符串
这将结束重写过程。
o7jaxewo2#
您还可以将包含以下内容的.htaccess文件
字符串
在您要排除重写的文件夹中(根据树中较高位置的.htaccess文件中的规则)。简单但有效。
axkjgtzd3#
添加一个条件来检查admin目录,类似于:
字符串
t40tm48m4#
我们使用以下mod_rewrite规则:
字符串
这会将所有访问站点的流量重定向(永久重定向为301)到http://www.newdomain.com,除了对/test和/my-folder目录中资源的请求。我们使用(.*)捕获组将用户转移到他们请求的确切资源,然后在新URL中包含$1。注意空间。
7vhp5slm5#
如果你想从规则中删除一个特定的目录(意思是,你想删除目录foo),你可以用途:
字符串
上面的rewriteRule将把所有请求重写为**/index.php**,不包括对**/foo/**的请求。
要排除所有存在的目录,您需要在规则之上使用以下条件:
型
下列规则
型
将所有内容(目录除外)重写到**/index.php**。
p3rjfoxz6#
字符串