2016-09-18 2 views
0

Я только понял, что некоторые из моих переписанных URL-адресов перестали работать. Я не знаю, почему.URL-адрес перезаписи, кажется, написан неправильно

Вот мой переписывают файл

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/locate/([^/]*)/$ /forums.php?page=$1&tlocate=$2 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^changelogs/([^/]*)/$ /index.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/$ /forums.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)/$ /forums.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/action/([^/]*)/$ /forums.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/section/([^/]*)/$ /forums.php?page=$1&sectionid=$2 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^register/([^/]*)/$ /register.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^account/([^/]*)/$ /account-page.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^about-us/$ /about.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L] 

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

Если я пошел в www.localhost/account/

Было бы просто отправить меня в www.localhost/forums/

Так я скачал Mozilla, чтобы увидеть, если мой Htaccess перестал работать. Css не работал там. Затем я пошел на сайт, чтобы проверить мой код и он жаловался на линии

RewriteRule ^about-us/$ /about.php 

На этой линии, я попытался переписать www.localhost/about.php в www.localhost/about-us/

без какого-либо успеха. Что я делаю неправильно, что вызывает эту проблему?

ответ

0

Вы можете использовать в .htaccess:

# skip all files and directories from rewrite rules below 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^forums/([^/]*)/locate/([^/]*)/$ /forums.php?page=$1&tlocate=$2 [L] 
RewriteRule ^changelogs/([^/]*)/$ /index.php?page=$1 [L] 
RewriteRule ^forums/$ /forums.php [L] 
RewriteRule ^forums/action/([^/]*)/$ /forums.php?page=$1 [L] 
RewriteRule ^forums/([^/]*)/section/([^/]*)/$ /forums.php?page=$1&sectionid=$2 [L] 
RewriteRule ^register/([^/]*)/$ /register.php?page=$1 [L] 
RewriteRule ^account/([^/]*)/$ /account-page.php?page=$1 [L] 
RewriteRule ^about-us/$ /about.php [L] 
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L] 
RewriteRule ^([^/]*)/$ /forums.php?page=$1 [L] 

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

И добавьте этот код в about.php HTML код:

<base href="/"> 

Поскольку вы меняете корень (для CSS и других родственников) с вашей about-us/ ссылка.

+1

Ты король, мой друг, у меня уже была базатаг. Но все остальное сработало – Synyster

Смежные вопросы