在php中通过htaccess替换掉url中的id=和.php。

问题描述 投票:0回答:1

我想在我的帖子的url中用斜线替换掉?id=和.php。

我试过很多其他问题的答案,但对我来说并不奏效,就像这个----。

https:/webmasters.stackexchange.comquestions56411remove-php-and-id-from-url-and-replace-with-slash79438。

Example Url - 
https://example.com/testing/events/news/post.php?id=13/Checking-to-see-if-this-works

我希望这个例子的网址是这样的

https://example.com/testing/events/news/post/13/Checking-to-see-if-this-works

我使用了下面的htaccess代码,它从url中删除了.php的扩展名,但不知道如何将 "id="替换为 "id="。

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

产出 -

https://example.com/testing/events/news/post?id=13/Checking-to-see-if-this-works

我还是不能用 "id="取代 "id="。

谢谢你的帮助:)

php .htaccess url
1个回答
1
投票

你可以在你的网站根目录下的.htaccess中使用这些规则。

Options -MultiViews
RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+(testing/events/news/post)\.php\?id=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^(post)/(.+)/?$ $1.php?id=$2 [L,QSA,NC]

# add .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
© www.soinside.com 2019 - 2024. All rights reserved.