Używam .htaccess do zarządzania czystymi adresami URL, ale z jakiegoś powodu w niektórych przypadkach pojawia się błąd 404 Not Found Apache.
Jeśli użytkownik przejdzie do http://domain.com/profile/
, wszystko jest w porządku.
Jeśli użytkownik przejdzie do http://domain.com/profile
, otrzyma błąd
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&cmd=$2 [L]
3 odpowiedzi
Spróbuj tego:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# /profile/cmd
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ /index.php?page=$1&cmd=$2 [L]
# /profile
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?page=$1 [L]
</IfModule>
Możesz przekierować adres URL za pomocą adresu URL z końcowym ukośnikiem za pomocą przekierowania 301
Spróbuj wykonać następujące czynności wraz z warunkiem przepisania. Spowoduje to przekierowanie każdego żądania adresu URL na adres URL z końcowym ukośnikiem. były. http://domain.com/profile zostanie przekierowany na http://domena.com/profile/
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Napisana reguła przepisywania wymaga jednego ukośnika '/'. Spróbuj zamiast tego:
RewriteRule ^([^/]*)(/([^/]*))?$ /index.php?page=$1&cmd=$3 [L]
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.