Вчера я разместил вопрос о файле .htaccess. Сейчас работает, но у меня другая проблема. Например:Очистить URL с использованием .htaccess или не слэш
При попытке перейти на «локальный/о», он не работает, он дает мне «Ошибка 404»:
не найден
Запрошенный URL/Приложения/MAMP/htdocs/user/enric/не были найдены на этом сервере.
Но когда я перехожу к «localhost/about /», он работает. Зачем?
Я хочу, чтобы оба URL работали. Кто-нибудь может мне помочь?
Это код моего файла .htaccess:
<IfModule mod_rewrite.c>
Options -Multiviews
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^channels/page/([0-9]+)/?$ channels/index.php?p=$1 [L]
RewriteRule ^channels/([_0-9a-z-]+)/?$ channels/index.php?o=$1 [L]
RewriteRule ^channels/([_0-9a-z-]+)/([0-9]+)/?$ channels/index.php?o=$1&p=$2 [L]
# User profiles
RewriteRule ^user/([^/]*)/$ /user/index.php?usr=$1 [L]
# Check to see if the URL points to a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Trailing slash check
RewriteCond %{REQUEST_URI} !(.*)/$
# Add slash if missing & redirect
RewriteRule ^(.*)$ $1/ [L,R=301]
# Delete ".php" extension and adds "/"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteCond %{DOCUMENT_ROOT}%1.php -f
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
</IfModule>
Спасибо!
Спасибо! Оно работает! –
Добро пожаловать, рад, что это сработало. – anubhava
Я изменил часть кода, потому что он не работает с папками! ! 'RewriteCond% {REQUEST_FILENAME} -f RewriteCond% {REQUEST_URI} (/ $ |. \)! (. *) RewriteRule% {REQUEST_URI}/[R = 301, L]' –