.htaccess将查询字符串附加到内部重定向

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响应.

Ant*_*los 2

我没有测试过任何东西,只是看看那条线......

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)