Проблема двойного соединения с .htaccess и mod_rewrite - PullRequest
0 голосов
/ 28 сентября 2010

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

Вот мой htaccess

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Вы можете попробовать использовать это в вашем .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.

1 голос
/ 28 сентября 2010

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

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

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