2013-12-04 2 views
0

Скажем, у меня было это:Htaccess RewriteRule 500 ошибка

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^page(?:/error(?:/([^/]+))?)?/?$ page.php?error=$1 [L,QSA] 

page/ и далее (page/error/ и т.д.) дает мне ошибку 500.

ответ

1

Вы можете использовать это правило, чтобы сделать последний слэш и другие компоненты URI опционально:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^page(?:/error(?:/([^/]+))?)?/?$ page.php?error=$1 [L,QSA] 

Полный .htaccess:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^page(?:/error(?:/([^/]+))?)?/?$ page.php?error=$1 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 
+0

Спасибо большое, он работал. – user273324

+0

Добро пожаловать, рад, что все получилось. – anubhava

+0

Теперь, когда я использую конечную косую черту только для 'page /', она снова возвращает мне ошибку сервера. – user273324

Смежные вопросы