Использование htaccess для создания симпатичных ссылок - в моем непустом .htaccess - PullRequest
0 голосов
/ 20 апреля 2020

Так что сейчас я просто пытаюсь преобразовать что-то вроде

https://gregorj.org/post?id=26

в

https://gregorj.org/post/26

Все, что я нашел (также в stackoverflow), подсказывает мне поставить это в .htaccess:

RewriteEngine On
RewriteRule ^post/([^/.]+)?$ /post?id=$1 [L]

Но это не работает в моем случае. Я предполагаю, что это может быть только потому, что у меня есть куча других вещей в моем .htaccess, которые я положил туда, чтобы скрыть. php и. html расширения назад, когда я запускал сайт (именно поэтому я и написал / post? id = $ 1, а не /post.php?id=$1 в .htaccess - но я попробовал оба на всякий случай:).

Вот мой .htaccess в его нынешнем виде:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]

# Prevent POST requests from getting redirected
RewriteCond %{REQUEST_METHOD} !POST

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]

# To externally redirect /dir/foo.html to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.html -f [NC]
RewriteRule ^ %{REQUEST_URI}.html [L]

Есть какие-нибудь идеи относительно того, что я могу сделать, чтобы получить более симпатичные ссылки?

1 Ответ

0 голосов
/ 20 апреля 2020

Что ж, я ответил на свой вопрос.

Если я начну препятствовать перенаправлению запросов POST, то, возможно, ^ post не лучший способ запустить правило перенаправления ...

Я изменил это на ^ статью и никаких проблем

...