Перенаправление через htaccess не работает - PullRequest
0 голосов
/ 18 февраля 2012

Я хочу переписать URL, как показано ниже:

URL: http://localhost/my_site/?file_name=sample

Это мой URL, который я хочу показать как:

URL: http://localhost/my_site/sample

, что означает, что я хочу удалить параметр file_name, получить значение параметра и задать его в URL, для установки этого я использовал следующий код:

RewriteEngine On
RewriteBase /my_site/
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ /?file_name=$1 [QSA,L]

Но он не работает, когда я набираю http://localhost/my_site/sample, он показывает мне список всех сайтов, присутствующих на моем локальном сайте, что означает, что он выводит меня на http://localhost вместо требуемой страницы.Что не так делаю?

Пожалуйста, помогите, заранее спасибо

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Предполагается, что папка mysite находится под DocumentRoot.добавьте это к вашему

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteCond %{REQUEST_URI} !-f 
RewriteCond %{REQUEST_URI} !\.\w+$
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule (.*) /$1/ [R,L]

RewriteCond %{REQUEST_URI} ^/(my_site)/([\w\d-]+)/$ [NC]
RewriteRule ^ %1/?file_name=%2 [L,QSA]

RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} (?:(.*)&)?file_name=([\w\d-]+)(.*) [NC]
RewriteRule ^(my_site) $1/%2/?%1%3 [L,R]

Для серверной части:

RewriteCond %{REQUEST_URI} ^/([\w\d-]+)/$ [NC]
RewriteRule ^ /?file_name=%1 [L,QSA]

RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} (?:(.*)&)?file_name=([\w\d-]+)(.*) [NC]
RewriteRule ^ %2/?%1%3 [L,R]
0 голосов
/ 18 февраля 2012

попробуйте, если это работает:

RewriteEngine On
RewriteBase /my_site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ file_name=/$1 [L]  

Внимание: не проверено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...