Здесь была моя первая проблема.Некоторые люди делают ссылки на мой сайт, но с неправильными URL-адресами, обычно добавляя странный символ после URL.
, например, вместо ссылки на: www.example.com/hello.php, на которую они ссылаются: www.example.com/hello.php+fiat, после чего произошла ошибка 404.
Я создал такое правило переписывания, которое работает как чудо:
RewriteRule ^([a-z0-9\-/_]*\.php).* $1 [L]
iпробовал, что 2 с таким же поведением (работает нормально)
RewriteRule ^(.*\.php).* $1
RewriteRule ^(.*\.php).*$ $1
все, что после .php удаляется и затем направляется на правильный URL.Вопросительный знак не является проблемой при переписывании, что означает, что у меня много страниц с xyz.php? id =, и я хочу оставить их как есть.
, но теперь, по непонятной причине, когда явведите URL, который не существует, например: example.com/toto/index.php У меня ошибка 500 внутреннего сервера вместо обычной страницы 404.но если я удалю свое правило, то у меня снова будет страница 404. Как обычно,
, если она может помочь, единственное правило, которое вызывает сбой Apache:
RewriteRule ^(.*\.php).* $1 [R=301,L]
Любоеидея?(на Apache 2.2)
Спасибо