htaccess url重写帮助

时间:2009-06-28 17:06:51

标签: apache .htaccess rewrite

我有以下重写网址:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs 
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]

现在我想添加一个例外,如果URL类似于mysite.com/abc,它应该忽略它以及它内部的所有内容。 mysite.com/abc/dfgs也应该被排除在此重写之外。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:2)

如果/ abc是现有目录,您可以使用

将另一个.htaccess文件放入其中
RewriteEngine Off  

如果它只是一个你想要不重写的字符串(是否存在)

RewriteCond %{REQUEST_URI} !^/abc  
如果请求的路径以“/ abc”

开头,

将不会重写

测试重写规则而不会弄乱常规浏览器的网站(当然不是你应该在现场环境中进行编辑,这纯粹是假设:-)),我发现以下内容非常有用:

RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address  

答案 1 :(得分:0)

如果URI包含abc,这应该避免重写。这可能或可能不是您想要的。如果没有编辑您的问题。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc

# Rewrite all other URLs 
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]