我正在尝试在我的joomla网站上重写网址。我有一个额外的页面,其中包含其他一些内容。
我有:
RewriteRule ^company/([^/]+) company?alias=$1 [NC]
我希望公司/某公司能够显示网址公司的内容?别名=某公司会给出(不向前推)。
我得到的是重定向到:
http://www.mydomain.dk/var/www/clients/client2/web5/web/company?alias=somecompany
此外,如果我包含“ - ”,如“公司/某公司”,它会跳过我的重写,只是转到joomla重写规则(并且找不到文章)
我做错了什么?
答案 0 :(得分:4)
您需要添加RewriteBase
。当您的重写规则的目标不以前导斜杠(使其成为绝对URI)开始时,apache需要猜测它是URI路径还是文件路径,并且它错误地猜测它是文件路径。添加一个base告诉apache它是一个URI路径。
RewriteBase /
或向目标添加前导斜杠:/company/?alias=$1
您还想向公司添加一个尾部斜杠并使用[L]
标志:
RewriteRule ^company/([^/]+) company/?alias=$1 [L,NC]
缺少尾随斜线可能是导致mod_dir和DirectorySlash
重定向的罪魁祸首。 L
标志可能是最终应用joomla规则的原因。
答案 1 :(得分:0)
这是工作示例:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^/?old-folder/(.*)$ /new-folder/$1 [R=301,L]
</IfModule>
有关更多示例,请检查: