2012-06-08 3 views
0

Попытка выяснить, как написать мой httaccess, чтобы я получил его, чтобы мои URL-адреса были «www» свободными и позволили мне создать стиль стиля слизняков для «дружественных» URL-адресов. Я, кажется, все время пишу себя во внутренней ошибке 500. Это или, похоже, не переносит лишний материал. дополнительный Stuf будет что угодно, от .com/над т.е. mydomain.com/hello/worldhtaccess canonical url with slugs

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

Общей целью взять URL в любом из этих 2-х мод

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, с которым я мог бы это сделать, но я потерял этот файл, и он был далеко-далеко от ive играл с htaccess, чтобы помнить, как я это сделал в первую очередь.

ответ

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] 

Это не проверял, но общее руководство.