htaccess规范网址与slugs

时间:2012-06-08 22:43:20

标签: apache .htaccess mod-rewrite

试图弄清楚如何写我的httaccess让我拥有它所以我的网址是'www'免费并允许我为'友好'网址设置slug样式。我似乎一直在写自己的内部500错误。那或它似乎没有带来额外的东西。额外的stuf来自.com / over即mydomain.com/hello/world

RewriteEngine On
Options +FollowSymlinks -MultiViews
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.mydomain.com [NC]
RewriteRule ^(.*)/?$ http://mydomain.com/index.php?r=$1

总体目标是以这两种方式中的任何一种获取网址

http://mydomain.com/hello/world

http://www.mydomain.com/hello/world

并将其翻译为

http://mydomain.com/hello/world到前端,但在后端相当于http://mydomain.com/index.php?r=hello/world

我还想应用条件,如果文件存在,或文件夹存在,或存在任何存在,则停止重写冷。我知道这很可能没有删除www部分,不确定该部分,因为我曾经有一个htaccess文件,我可以做到这一点,但我已经丢失了该文件,它已经很久很久以来我与htaccess一起玩,记住我是如何做到的。

1 个答案:

答案 0 :(得分:1)

这会将www转发到非www网站。还要注意index.php。

RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L]

您还可以添加以下两行。像这样,如果你有任何css或图像,它将不会将它们重写为index.php:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L]

这不是测试,而是一般指导。