2010-05-10 3 views
0

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

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

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

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

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

+0

Конечно, здесь должны быть некоторые умные ребята, которые помогут вам. Но вы можете рассмотреть публикацию этого на http://serverfault.com, где есть группа реселлеров серверов-специалистов. – Cristian

+0

ErrorDocument 404 /404.php Это все, что есть в пользовательских страницах ошибок – user97410

ответ

0

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

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

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

1

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

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* /$0.php 
Смежные вопросы