Я хочу удалить последнюю косую черту в конце URL-адреса. Например: я хочу http://localhost/mysite/page/
переписать на http://localhost/mysite/page
.
Я использую этот код на моем локальном хосте .htaccess.
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/$ $1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)$ web.php?page=$1
Если я напишу в своем браузере http://localhost/mysite/index
, это показывает то, что я хочу. Но если я напишу http://localhost/mysite/index/
он сообщает мне «не найден» и «запрошенный URL не был найден на этом сервере». Я использую UniServer в Windows 8.
Попробуйте вместо этого:
# Remove trailing slash if not an existing directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# Rewrite to use web.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ web.php?page=$1 [L]
Возможно, вам не придется менять второе правило, если оно уже работает нормально.
Это сработало, добавив эту строку
RewriteRule ^(.*)/$ /mysite/$1 [R,L]