.htaccess 从URL中删除URL参数和index.php文件名

x4shl7ld  于 2022-11-30  发布在  PHP
关注(0)|答案(1)|浏览(149)

我需要一些推动与此,我有网站的URL结构看起来像这样
domain.com/folder/index.php?name=asdasdAs2
如何删除URL index.php?name=的这一部分,使其看起来如下所示
domain.com/folder/asdasdAs2
传递的值(asdasdAs 2)有时也包含这些符号(.)、(-)或(_),因此它看起来会像这样(asd.asdAs2)、(asdasd_As2)或(asd-aSd-As 2)
我一直在尝试在我的.htaccess文件中使用此代码,但它不起作用。

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteRule ^/folder/(.*) /folder/index.php?name=$1

且这

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>

还有这个

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)$     $1/index.php?name=$2 [L]

最后一个执行此工作,但仅使用字母数字字,例如(asdasdAs 2),而不是(asd.asd)或(asd_asdas2)

9lowa7mx

9lowa7mx1#

使用显示示例,请尝试以下.htaccess规则文件

请确保:

  • 将.htaccess文件与名为folder的文件夹沿着保存。
  • 在测试URL之前清除浏览器缓存。
RewriteEngine ON
##External redirect rules here.
RewriteCond %{THE_REQUEST} \s/(folder)/index\.php\?name=(\S+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L]

##Internal rewrite rules from here...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/?$ $1/index.php?name=$2 [QSA,L]

相关问题