Apache mod_rewrite将php参数添加到基本url
我确信这个问题以前已经得到了回答,但我不确定如何搜索答案,因为谷歌搜索充斥着通用的mod_重写url样式问题 我有一个带有以下标准规则的.htaccess文件,用于将非www查询重定向到wwwApache mod_rewrite将php参数添加到基本url,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我确信这个问题以前已经得到了回答,但我不确定如何搜索答案,因为谷歌搜索充斥着通用的mod_重写url样式问题 我有一个带有以下标准规则的.htaccess文件,用于将非www查询重定向到www RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301] 该站点被构造为具有两个主页的单页应用程序,并且该站点根据url参数显示html。假设第一页是苹果
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301]
该站点被构造为具有两个主页的单页应用程序,并且该站点根据url参数显示html。假设第一页是苹果,第二页是梨。我想这样做,如果用户搜索website.com,那么第一条规则将被调用,它将重定向到www.website.com。然后我希望它添加一个参数,使其成为www.website.com/?p=apples,因为原始搜索中既不包含?p=apples,也不包含?p=pears
我尝试了几种解决方案,但它们似乎都会导致重定向循环。这会意外导致重定向循环,例如:
RewriteCond %{THE_REQUEST} !^.*\?p=apples.*$
RewriteCond %{THE_REQUEST} !^.*\?p=pears.*$
RewriteRule .* http://www.website.com/?p=apples [R] # also how can this be generalized so it's not domain name specific
看看这是不是你要找的。如果您试图将其合并,使其重定向到www,并且如果查询字符串为空,则重定向到
?p=apples
,则此代码适用于您
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{QUERY_STRING} !p=(.+)$ [NC]
RewriteRule ^$ http://www.%{HTTP_HOST}/?p=apples [R=301,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L,QSA]
将缓存添加到.htaccess后是否清除了缓存?您在其他目录中有.htaccess吗?