htaccess redirect index.php? p = заголовок моей темы в / my-topic-title - PullRequest
0 голосов
/ 25 ноября 2018

Я хотел бы использовать htaccess, чтобы изменить свой URL для моего веб-сайта.

URL currently: example.com/index.php?p=my-topic-title
I want to be like : example.com/my-topic-title 

мой текущий файл htaccess:

    RewriteEngine on

RewriteRule ^p/([0-9أ-يa-zA-Z_.]+) index.php?p=$1 [NC,L]

результат для этого кода:

example.com/p/my-topic-title

Я хочу, чтобы URL был (без (/ p /) ) похож на :example.com/my-topic-title

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Спасибо, я решил это с помощью:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9]+[-]+[A-Za-z0-9]+)+[/])$  index.php?p=$1    [NC,L]    
# Handle blog requests
RewriteRule ^c/(([A-Za-z0-9]+[-]+[A-Za-z0-9]+)+[/])$  index.php?c=$1   [NC,L]
# Handle blog requests
0 голосов
/ 26 ноября 2018

У меня есть решение для (пробелов), но я хочу изменить свой URL (example.com/index.php?=my-topic-title) на (example.com/my-topic-title)

Я предполагаю, что вы уже изменили URLв вашем приложении, и вам нужно только перенаправить поисковых систем / пользователей, чтобы сохранить SEO.

В этом случае вы можете сделать что-то вроде перед выше переписать:

 RewriteCond %{QUERY_STRING} ^p=([^&]{3,})
 RewriteRule ^index\.php$ /%1 [QSD,R,L]

Предполагается, что заголовок страницы не менее 3 символов.Обратная ссылка %1 содержит захваченный подшаблон в предыдущем CondPattern .Флаг QSD (Apache 2.4+) необходим для удаления строки запроса из перенаправленного URL.

...