.htaccess - заменить дефис (тире) '-' на наклонную черту '/'

0

У меня проблема с.htaccess

В это время у меня есть что-то вроде этого:

http://example.com/page-example?getVariable=1234

Но я хочу что-то вроде:

http://example.com/page/example/1234

Я попытался использовать эти.htacces, чтобы заменить дефисы косой чертой

Options +FollowSymlinks -MultiViews
RewriteRule ^([^/]+)-([^/]+).php/?$ /$1/$2 [R,L]

И у меня что-то вроде этого

 http://example.com/page/example?getVariable=1234

Но сервер не может найти путь, я думаю, потому что он признает, что "страница" - это папка.

Как я могу сделать то, что хочу, но сервер ищет файл "page-example.php" в корневой папке, а не "example.php" на странице "/page/"?

PS: Я использую уже код ниже, чтобы удалить расширение.php и "www". от URL.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
  • 0
    Вы имеете в виду page-example.php? ? Кроме того, я не часто переписываю, но разве вы не переписываете задом наперед?
  • 0
    Я тоже не так много знаю о правилах переписывания, но что вы имеете в виду под обратным?
Показать ещё 1 комментарий
Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Перед правилами, которые у вас уже есть, попробуйте добавить:

RewriteCond %{THE_REQUEST} \ /+page-([^/]+)(?:\.php|)\?getVariable=([^&\ ]+)
RewriteRule ^ /page/%1/%2? [L,R]

RewriteRule ^page/([^/]+)/([^/]+)$ /page-$1.php?getVariable=$2 [L,QSA]

Так что все выглядит так:

RewriteEngine on

RewriteCond %{THE_REQUEST} \ /+page-([^/]+)(?:\.php|)\?getVariable=([^&\ ]+)
RewriteRule ^ /page/%1/%2? [L,R]

RewriteRule ^page/([^/]+)/([^/]+)$ /page-$1.php?getVariable=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
  • 0
    Это странно, это ничего не изменило в URL, оставалось example.com/page-example?getVariable=1234, но спасибо вам за помощь, человек!
  • 0
    @EnriqueSampaio прекрасно работает для меня: i.stack.imgur.com/SDM8R.png
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню