我需要一些推送,我有一个网站,其 URL 结构如下
domain.com/folder/index.php?name=asdasdAs2
如何删除 URL 的这一部分
index.php?name=
,使其看起来像这样
domain.com/folder/asdasdAs2
传递的值(asdasdAs2)有时也包含这些符号(.)或(-)或(_),所以它看起来像这样(asd.asdAs2)或(asdasd_As2)或(asd-aSd-As2)
我一直在我的 .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]
最后一个可以完成这项工作,但只能使用字母数字单词 ex.(asdasdAs2),但不能在 (asd.asd) 或 (asd_asdas2) 上
使用您显示的示例,请尝试遵循 .htaccess 规则文件。
请务必:
folder
的文件夹。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]