1

У меня это как моя .htaccess:.htaccess - Clean URL, 500 Внутренняя ошибка сервера

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

# Where it's all about 
RewriteRule ^users/([a-zA-Z0-9]+)$ users.php?user=$1 
RewriteRule ^users/([a-zA-Z0-9]+)/$ users.php?user=$1 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.daltonempire.nl [nocase] 
RewriteRule ^(.*) 
http://daltonempire.nl/$1 [last,redirect=301] 

Я попытался сделать чистую URLs, перенаправляя daltonempire.nl/users/Me к daltonempire.nl/users.php?user=Me.

Однако я потерпел неудачу. Мой сайт теперь постоянно возвращает 500 Internal Server Error. (Я как-то создал петлю перенаправления?)

Что я сделал не так? (И что мне нужно сделать, чтобы исправить это?)

ответ

1

Поверьте, у вас есть дополнительная строка новой строки в последнем правиле. Также не забудьте использовать флаг L (последний) во всех ваших правилах.

RewriteEngine on 

# Where it's all about 
RewriteRule ^users/([a-zA-Z0-9]+)/?$ users.php?user=$1 [L,QSA] 

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

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.+?)/?$ $1.html [L] 

RewriteCond %{HTTP_HOST} ^www\.(daltonempire\.nl)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [L,R=301,NE] 
+0

Это решение проблемы 500 для всего моего сайта. Тем не менее, я все еще получаю ошибку 500, когда я перехожу к 'daltonempire.nl/users/me' (который _should_ перенаправляет меня на' daltonempire.nl/users.php? User = me') Кроме того, что делает 'L Значит, флаг? – Isaiah

+0

Теперь попробуйте отредактированный код. – anubhava

+0

Спасибо! (Но все-таки, что делает флаг 'L'?) – Isaiah

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