Перезапись URL в .htaccess не работает должным образом - PullRequest
0 голосов
/ 12 ноября 2018

В настоящее время я пишу свой собственный веб-сайт на PHP и MySQL на WampServer (локальный).Я уже успешно переписал некоторые из моих URL.Но у меня проблемы с одним из них.

Я хочу отобразить на странице все мои статьи, перечисленные в категории, используя метод GET.На данный момент у меня есть следующий URL: http://localhost/actuco/cat.php?id=xpS3cc&slug=amerique-du-nord, и я хотел бы использовать и отображать этот URL-адрес как http://localhost/actuco/c-xpS3cc-amerique-du-nord/ (который содержит точно такие же параметры GET, что иисходный URL).

Я пытался сделать это с помощью следующей строки в моем файле .htaccess

RewriteRule ^c-([^/]*)-([^/]*)/$ cat.php?id=$1&slug=$2

Когда я пишу второй URL в моем браузере, он показывает мне пустую страницубез строк кода вообще.Мой первый URL работает отлично.

Я действительно потерян, и я действительно не знаю, как это исправить.

Вот весь файл .htaccess, используемый на моем сайте (все остальные URLпереписывания в этом файле работают).

Options +FollowSymlinks

RewriteEngine On

RewriteBase /actuco/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} /+[^\.]+$
#RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ article.php?lng=$1&yr=$2&mo=$3&dy=$4&slug=$5&total_slug=$6
#RewriteRule ^([^/]*)-([^/]*)-([^/]*)$ waluty.php?cur=$1&amt=$2&lang=$3
RewriteRule ^([^/]*)/([^/]*)$ url.php?mode=$1&u=$2
RewriteRule ^c-([^/]*)-([^/]*)/$ cat.php?id=$1&slug=$2
RewriteRule ^bio$ o.php [L]

Заранее благодарен за помощь!

Ответы [ 2 ]

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

Решено! Просто забыли добавить косую черту перед $ в этой строке

До:

RewriteRule ^([^/]*)/([^/]*)$ url.php?mode=$1&u=$2

После:

RewriteRule ^([^/]*)/([^/]*)/$ url.php?mode=$1&u=$2

Теперь это работает, но у меня все еще есть проблема с несколькими дефисами в слаге, описанном здесь: Обработка нескольких дефисов в .htaccess (перезапись URL)

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

просто введите этот код в ваш файл .htaccess

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]

надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...