我无法找到所需的regex命令以执行以下操作:
(1)在URL中搜索特定字符串(文件名的子字符串),即:
url.com/state/的城市 _someotherdata.php
OR url.com/state/someotherdata_city_xy.php以及此格式的其他变体;
(2)将URL转换为以下格式:
url.com/state/的城市的index.php
可以做些什么呢?我试过这段代码
RewriteEngine On
RewriteCond %{QUERY_STRING} ([^\/?]+)\bozeman(?:\?|$) [NC]
RewriteRule ^http:\/\/url.com/montana/bozeman/? [L,R=301]

没有成功。这些数据将进入.htaccess文件。
提前致谢!
答案 0 :(得分:0)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^state\/([^/]*)([^/]*|$) /state/$1_someotherdata.php [L]
</IfModule>
答案 1 :(得分:0)
假设您正在与蒙大拿州的波兹曼合作。这将完全符合您的需要。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^.*(\/montana\/bozeman\/index.php)$
RewriteCond %{REQUEST_URI} ^.*(bozeman).*$
RewriteRule ^ /montana/bozeman/index.php [L,R=302,NE]
</IfModule>
您必须使用重写条件来排除您重定向到的URL,否则城市名称(本例中为Bozeman)与所指向的文件夹相同,将导致无限循环。