有关 mod_rewrite 和 mod_redirect 的帮助
我的 .htaccess 文件是:
Redirect 301 http://domain.com/news/articles?dtMain_start=150 http://domain.com/news/articles
Redirect 301 http://domain.com/news/articles?dtMain_start=160 http://domain.com/news/articles
Redirect 301 http://domain.com/news/articles?dtMain_start=170 http://domain.com/news/articles
#
RewriteEngine On
RewriteBase /
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
我还必须纳入以下规则
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L]
,我无法让它们一起工作...任何人都可以帮忙...
我尝试在 RewriteCond 之前堆叠重定向,我得到了这个... http://www.domain.com/news/articles?q=news/articles?dbMain_start=150
即 http://domain.com/newpage?q=oldpage
好吧,Mod_Alias 和 Mod_Rewrite 互不喜欢。
我可以写一些类似的东西:
RewriteCond %{REQUEST_QUERY_STRING} ^.*&bodgeredirect=true$
RewriteRule ^(.*)&bodgeredirect=true$ index.php?q=$1 [L,QSA]
My .htaccess file is:
Redirect 301 http://domain.com/news/articles?dtMain_start=150 http://domain.com/news/articles
Redirect 301 http://domain.com/news/articles?dtMain_start=160 http://domain.com/news/articles
Redirect 301 http://domain.com/news/articles?dtMain_start=170 http://domain.com/news/articles
#
RewriteEngine On
RewriteBase /
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
I also have to incorporate the following rule
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L]
I cannot get them to work together... can anyone help...
I tried just stacking the Redirects before the RewriteCond and I get this...http://www.domain.com/news/articles?q=news/articles?dbMain_start=150
ie http://domain.com/newpage?q=oldpage
Okay Mod_Alias and Mod_Rewrite don't like each other.
Can I write something like:
RewriteCond %{REQUEST_QUERY_STRING} ^.*&bodgeredirect=true$
RewriteRule ^(.*)&bodgeredirect=true$ index.php?q=$1 [L,QSA]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先: 没有 mod_redirect。
Redirect
是 mod_alias 的指令。与 mod_alias 的任何其他指令一样,
Redirect
指令仅适用于 URL 路径。因此您的Redirect
指令将无法按预期工作。使用 mod_rewrite 等效项:一般来说,如果模式彼此一致,则混合 mod_alias 和 mod_rewrite 并不是一个好主意。
First of all: There is not mod_redirect.
Redirect
is a directive of mod_alias.And the
Redirect
directive, like any other directive of mod_alias, does only work with the URL path. So yourRedirect
directives won’t work as expected. Use mod_rewrite equivalents instead:In general it is not a good idea to mix mod_alias and mod_rewrite if the patterns coincide with each other.