Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 带有文件夹名和两个变量的漂亮url_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache 带有文件夹名和两个变量的漂亮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 %

丑陋的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 %{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]