Kel*_*vin 138 .htaccess mod-rewrite url-rewriting
我的.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]
Run Code Online (Sandbox Code Playgroud)
Gum*_*mbo 274
在其他规则之前尝试此规则:
RewriteRule ^(admin|user)($|/) - [L]
Run Code Online (Sandbox Code Playgroud)
这将结束重写过程.
小智 100
你还可以做一个包含的.htaccess文件
RewriteEngine Off
Run Code Online (Sandbox Code Playgroud)
在要重写的文件夹中(通过树中较高的.htaccess文件中的规则).简单但有效.
Rob*_*Rob 23
添加条件以检查管理目录,例如:
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L]
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
Run Code Online (Sandbox Code Playgroud)
小智 5
我们使用了以下mod_rewrite规则:
RewriteEngine叙述上
的RewriteCond%{REQUEST_URI}!^ /测试/
的RewriteCond%{REQUEST_URI}!^ /我的文件夹/
重写规则(。*)http://www.newdomain.com/ $ 1 [R = 301,L]
这会将对网站的所有流量重定向(永久通过301重定向)到http://www.newdomain.com,但对/ test和/ my-folder目录中的资源的请求除外。我们使用(。*)捕获组将用户转移到他们请求的确切资源,然后在新URL中包括$ 1。注意空间。
如果要从规则中删除特定目录(意思是,要删除目录foo),可以使用:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/foo/$
RewriteRule !index\.php$ /index.php [L]
Run Code Online (Sandbox Code Playgroud)
上面的 rewriteRule 将所有请求重写到/index.php不包括对/foo/ 的请求。
要排除所有现有目录,您需要在规则上方使用以下条件:
RewriteCond %{REQUEST_FILENAME} !-d
Run Code Online (Sandbox Code Playgroud)
以下规则
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !index\.php$ /index.php [L]
Run Code Online (Sandbox Code Playgroud)
将所有内容(目录除外)重写为/index.php。
| 归档时间: |
|
| 查看次数: |
208895 次 |
| 最近记录: |