Моят URL адрес за конкретен сайт изглежда така:
http://www.mytestingsite123.com/play.php?alias=this-is-an-alias#.U5BPYvl_tNo
но искам да имам този URL адрес:
http://www.mytestingsite123.com/this-is-an-alias
или
http://www.mytestingsite123.com/video/this-is-an-alias
така че ще бъде по-SEO приятелски. Може ли да ми помогне, как бих могъл да го направя, като модифицира .htaccess файл.
Имам .htaccess файл със следното съдържание:
RewriteEngine On
# whole domains
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
# subdomains
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www.)?(.*).([^.]*).([^.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
# aliases (if misssing)
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
# subdomains (if misssing)
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
Отговори:
1 за отговор № 1Трябва да добавите своя .htaccess
файл по следния начин:
RewriteRule ^video/([^/]+)?$ play.php?alias=$1 [L]
RewriteRule ^([^/]+)?$ play.php?alias=$1 [L]
Първото правило ще съответства http://www.mytestingsite123.com/video/this-is-an-alias
второто правило ще съвпадне http://www.mytestingsite123.com/this-is-an-alias
на [L]
казва на Apache да спре да търси правило, на което да го промените [L,QSA]
което означава, че ако добавите допълнителни параметри в края на новото uri, то ще ги предаде правилно.