Apache 带有文件夹名和两个变量的漂亮url
丑陋的url-Apache 带有文件夹名和两个变量的漂亮url,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,丑陋的url-example.com/folder\u name/art.php?id=9&s=something 想要成为-example.com/folder\u name/id/s 这是我的尝试 # external RewriteCond %{THE_REQUEST} \s/+art\.php\?id=([^&]*)&s=([^\s&]*) [NC] RewriteRule ^ /%1/%2? [R=301,L] # internal RewriteCond %
example.com/folder\u name/art.php?id=9&s=something
想要成为-
example.com/folder\u name/id/s
这是我的尝试
# external
RewriteCond %{THE_REQUEST} \s/+art\.php\?id=([^&]*)&s=([^\s&]*) [NC]
RewriteRule ^ /%1/%2? [R=301,L]
# internal
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/?$ art.php?id=$1&s=$2 [L]
不起作用输入丑陋的url-地址栏不变
输入漂亮的url-获取错误404
请帮助您的规则还必须允许文件夹名称,因此请使用:
重新编写引擎打开
#外部的
重写cond%{THE_REQUEST}\s/+(文件夹名称)/art\.php\?id=([^&]*)和s=([^\s&]*)[NC]
重写规则^/%1/%2/%3?[R=301,L]
#内部的
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(文件夹名称)/([\w-]+)/([\w-]+)/?$$1/art.php?id=$2&s=$3[L,QSA,NC]
这假定文件夹\u name/
中没有其他.htaccess
如果该子文件夹中有.htaccess,请使用此.htaccess:
重新编写引擎打开
重写基本/文件夹名称/
#外部的
RewriteCond%{THE_REQUEST}/art\.php\?id=([^&]*)和s=([^\s&]*)[NC]
是否重写规则^1/%2?[R=301,L]
#内部的
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([\w-]+)/([\w-]+)/?$art.php?id=$1&s=$1[L,QSA]
folder\u name
是多种多样的,它是一个字符串,所以问题出在哪里,只要用任何东西更改folder\u name
,然后使用它htaccess
在root-example.com
-从那里我有各种文件夹。每个文件夹内都有一个art.php
文件夹内没有htaccess
已解决-RewriteCond%{THE_REQUEST}\s/+([^\s&]*)/art\.php\?id=([^&]*)&s=([^\s&]*)[NC]RewriteRule^/%1/%2/%3?[R=301,L]