【发布时间】:2015-03-21 11:51:58
【问题描述】:
我的网站上有一个博客页面,.htaccess 如下所示用于转换 SEO 友好 URL
RewriteRule ^([^/.]+)/?$ /blogdetail?prmn=$1 [L]
所以,我的 URL 变成了 http://example.com/title-of-blog,它工作得非常好,但我的客户今天报告说管理部分工作不正常,我检查并发现 URL http://example.com/admin 正在转换为 http://example.com/admin?prmn=admin,因为以上规则。
我用谷歌搜索了如何从 Rewrite 中排除 admin 文件夹然后我得到了下面
RewriteRule ^admin($|/) - [L]
当我使用它时,当我输入 http://example.com/admin 时,我会得到我在 htaccess 中定义的错误页面。
请帮忙。我的完整 Htaccess 如下
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^admin($|/) - [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^index\.php$ / [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index
RewriteRule ^index\.php$ / [L,R=301]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
# remove .php from URL
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
# restrict .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /[^\ ]+\.php($|\ )
RewriteRule \.php$ / [F,L]
# remove .html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)\.html$ /$1 [L,R=301]
RewriteRule ^([^/.]+)/?$ /blogdetail?prmn=$1 [L]
ErrorDocument 404 /error-page
ErrorDocument 403 /error-page
ErrorDocument 500 /error-page
【问题讨论】:
-
如果更改配置文件中语句的顺序会怎样?
-
你能否显示完整的 .htaccess 问题
-
我的 Htaccess 在 #RewriteRule ^admin($|/) - [L] RewriteRule ^([^/.]+)/?$ /blogdetail?prmn=$1 [L] ..那么你想如何更改订单
-
@Anubhava,添加了有问题的htaccess
-
没有 Anubhava... 管理员没有 .htaccess
标签: .htaccess mod-rewrite url-rewriting