Проблема перезаписи URL - PullRequest
0 голосов
/ 10 мая 2010

Я сделал .htaccess, который изменил URL-адреса, например www.site.com/sell.php на www.site.com/sell. Страница продажи существует у меня / и работает нормально. Проблема в том, что когда я пытаюсь что-то вроде www.site.com/sadasdasdasdadsdfgfds, потому что sadasdasdasdadsdfgfds не существует. Я получаю ошибку Apache 500.

Это мой файл .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /$0.php

Как я мог это исправить? Спасибо, ребята.

ОБНОВЛЕНИЕ: сработало! Спасибо, парни! Теперь, как мне перенаправить пользователя на страницу ошибки 404?

Ответы [ 2 ]

1 голос
/ 10 мая 2010

У вас есть проверки, чтобы убедиться, что файл не существует. Вы также должны убедиться, что соответствующий php-файл существует:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* /$0.php
0 голосов
/ 10 мая 2010

Вам необходимо проверить, является ли новый пункт назначения существующим файлом:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* /$0.php

В противном случае вы получите бесконечную рекурсию.

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