Ref*_*gic 7 php .htaccess mod-rewrite redirect
我正试图在.htaccess中创建SEO友好的蒙面重写.htaccess文件在localhost和我的个人服务器上工作正常,但遗憾的是它似乎无法在GoDaddy的服务器上运行.我知道那已经是一个问题,但是为一个使用Godaddy作为主持人的客户工作.
问题是重写似乎是强制重定向显示浏览器URL栏中重写的查询字符串而不是保持内部.例如.
规则:
RewriteRule ^/?([a-zA-Z0-9-_/]*)$ /index.php?loadPage=$1&mode=cms [L,QSA]
Run Code Online (Sandbox Code Playgroud)
链接:/images重定向到/images/?loadPage=images&mode=cms
这"应该"留/images/在浏览器中.我复制了.htaccess下面的简短文章,为开发块修改了IP
<Files .htaccess>
deny from all
</Files>
Options -MultiViews +FollowSymlinks -Indexes
RewriteEngine On
RewriteBase /
# Stop Old redirection from block below
RewriteCond %{REQUEST_URI} "/old/"
RewriteRule (.*) $1 [L]
# Under construction Redirect
RewriteCond %{REMOTE_ADDR} !^0.0.0.0
RewriteCond %{REQUEST_URI} !^/?old/
RewriteRule ^/?(.*) “/old/$1? [L,QSA]
#Admin utilities rewrite
RewriteRule ^/?admin/?(.*)$ /index.php?loadPage=$1&mode=backend [L,QSA]
#CMS/Frontend rewrites -- this one is failing
RewriteRule ^\/?([a-zA-Z0-9-_]+)\/?$ /index.php?loadPage=$1&mode=cms [QSA,L]
Run Code Online (Sandbox Code Playgroud)
一个潜在的注意事项是显示的网址是/images/?query_stringNOT index.php?query_string,因此它没有进行完全重定向,尽管外部请求正在从页面请求接收301响应.
我没有测试过任何东西,只是看看那条线......
RewriteRule ^\/?([a-zA-Z0-9-_]+)\/?$ /index.php?loadPage=$1&mode=cms [QSA,L]
Run Code Online (Sandbox Code Playgroud)
有语法错误。9 后面的连字符应该被转义,因为从技术上讲,它是一个范围指示器。大多数时候,您会看到人们将其放在末尾之前],因此它不会导致错误,因此大多数人认为他们不必转义它。您也不需要转义正斜杠。另外,使用问号使前面的内容成为可选的,并且不知道为什么要这样做。所以它应该是这样的:
RewriteRule ^([a-zA-Z0-9\-_]+)/?$ /index\.php?loadPage=$1&mode=cms [QSA,L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4670 次 |
| 最近记录: |