2017-01-02 2 views
1

Я пытаюсь выяснить, почему это правило соответствует всем, и как сделать в единственном матче author.php? User_name = user_nameМой RewriteRule сопрягает все

RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?user_name=$1 [NC,L] 

Я работает для автора страницы (например, :/author/joe), но если я перейду на страницу about, например, я получаю /author/about.

В соответствии с поручением я добавляю все содержимое моего файла .htaccess:

RewriteEngine On 
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?user_name=$1 [NC,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
+0

Пожалуйста, ваши другие правила тоже. Это правило не может вызывать проблемы (так как оно не переписывает ничего * в * '/ author /', оно переписывает * из * этого). Также, какой URL-адрес для вашей страницы? Возможно, у вас есть правило, переписывающее только '/ authorname'? Пожалуйста, разместите их все, как они появляются в вашей настройке. – SuperDuperApps

+0

@ user2493235 Я редактировал свой вопрос, чтобы включить все правила. –

+0

Спасибо, Роб. И какой URL-адрес для вашей страницы? – SuperDuperApps

ответ

3

Это не совсем понятно, что вы пытаетесь сделать. Возможно, в вашем HTML вы должны ссылаться на /about, начиная с косой черты, поэтому URL-адрес не будет создан относительно текущей страницы, а в корневом каталоге веб-сайта?

Btw, вы можете выразить свое правило в несколько меньшей образом:

RewriteRule ^author/([\w-]+)/?$ author.php?user_name=$1 [NC,L] 
+0

Хорошая идея, это возможность, если он нажимает ссылку на странице в '/ author /'. – SuperDuperApps

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