У меня проблема с.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
Перед правилами, которые у вас уже есть, попробуйте добавить:
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
page-example.php?
? Кроме того, я не часто переписываю, но разве вы не переписываете задом наперед?