2010-09-28 5 views
0

Извините, я не мог придумать лучший заголовок.Ссылка Проблема дублирования с .htaccess и mod_rewrite

Вот мой Htaccess

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L,QSA] 

И это моя проблема:

локальный/validpage дает мне содержимое LOCALHOST/validpage.php. localhost/validpage/blah также дает мне ту же страницу (validpage.php), а также localhost/validpage/blah/blah/... Поэтому проблема, с которой я столкнулась, - это ссылка duplicity (на словах!).

Как разрешить доступ к localhost/validpage.php только от localhost/validpage, и ничего больше, даже не localhost/validpage.php.

Я тоже начал задавать вопросы по *Server****Fault***, но с небольшим успехом. Ответ, который у меня есть, это не может быть сделано только с htaccess.

По действительной странице Я имею в виду любые действительные страница на сервере. Поскольку я модернизирую существующий сайт с mod_rewrite для более чистых URL-адресов, я ищу относительно простое решение, желательно только с .htaccess. Однако любые решения приветствуются.

ответ

1

Каков исходный атрибут ваших изображений и т. Д. ???
абсолютный или относительный?

<img src="/images/my.jpg" /> и <img src="images/my.jpg" /> указывают на разные файлы при применении правил перезаписи.

+0

Я могу обойти проблему, выполнив это. но я хотел знать, почему я не получаю 404 – abel

+0

, если ответ не имеет смысла, потому что я обновил свой вопрос – abel

1

Вы можете попробовать использовать это в .htaccess

RewriteEngine on 
RewriteBase/

# if request has a php extension remove and redirect 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_URI} ^((.*)\.php)$ 
RewriteRule ^(.*).php$ $1 [L,R=301] 

# if request uri has no extension link to php file 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

Я должен переписать свои PHP скрипты для дружественных URL и перенаправлять запросы, используя расширение .php.

+0

Я получаю страницу не перенаправляет должным образом ошибку в Firefox. – abel