我的网址重写重定向到mydomain.com/var/www/clients/client3/web25/

时间:2012-09-30 10:24:22

标签: .htaccess url-rewriting

我正在尝试在我的joomla网站上重写网址。我有一个额外的页面,其中包含其他一些内容。

我有:

RewriteRule ^company/([^/]+) company?alias=$1 [NC]

我希望公司/某公司能够显示网址公司的内容?别名=某公司会给出(不向前推)。

我得到的是重定向到:

http://www.mydomain.dk/var/www/clients/client2/web5/web/company?alias=somecompany

此外,如果我包含“ - ”,如“公司/某公司”,它会跳过我的重写,只是转到joomla重写规则(并且找不到文章)

我做错了什么?

2 个答案:

答案 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>

有关更多示例,请检查: