, заставляя это работать, делает мой вид сумасшедшим, поэтому я надеюсь, что вы сможете помочь.Multible RewriteRules приводит к ошибке внутреннего сервера
Я использую Rewrite правила и .htaccess, чтобы сделать мой динамический URL
example.com/page.php?id=1
выглядеть как этот
example.com/1
использованием
RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?id=$1 [NC,L]
, и она отлично работает до сих пор.
Но я также хочу, чтобы скрыть тип файла в URL (impressum.php
к impressum
) с использованием
RewriteRule (.*) $1.php [L]
Так как правила работают совершенно правильно до тех пор, как я не использую их обоих в то же самое время. Когда я это сделаю, это выглядит так (мой полный файл)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ page.php?id=$1 [NC,L]
, я получаю внутреннюю ошибку сервера. Я пробовал разные версии, например, менял позиции и т. Д., Но я всегда получаю эту ошибку.
Так что мой вопрос: как мне получить оба правила вместе и работать, в то время как окончание URL-адресов все еще скрыто и работает example.com/1
?
Большое спасибо за любой ответ
Это потому, что оба условия RewriteRule '(. *) 'и' ([A-Za-z0-9 -] +) 'будет соответствовать'/1' в вашем URL-адресе. Как сервер будет знать разницу между одним нереальным файлом и другим? –