是否可以使用文件名字符串作为mod_rewrite的指示符来返回伪目录?
我会详细说明:
在我的根目录(public_html)中,我有一个名为“pages”的目录,其中包含以下文件:
使用example.php
示例 - abc.php
instance.php
实例 - 2.PHP
是否可以使用mod_rewrite来完成以下操作:
example.com/example / 检索 /pages/example.php
的文件example.com/example/abc / 检索 /pages/example--abc.php
的文件example.com/instance / 检索 /pages/instance.php
的文件example.com/instance/2 / 检索 /pages/instance--2.php
的文件依旧......?
到目前为止,我已成功使用以下内容将/示例指向/pages/example.php
RewriteCond %{REQUEST_URI} !pages/
RewriteRule ^(.*)$ pages/$1.php [L,QSA]
但是,目标文件名( - )中的双连字符定义伪目录的工作方式超出了我目前的掌握范围。
我一直在努力寻找一个无济于事的解决方案。
此外,上面的代码不允许使用尾部斜杠(并且它应该在理想的世界中)
任何帮助都非常感激。
谢谢,
JC
答案 0 :(得分:2)
仅根据说明,您可以尝试:
<强>已更新强>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/pages
RewriteRule ^([^/]+)/([^/]+)/?$ pages/$1--$2.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/pages
RewriteRule ^([^/]+)/?$ pages/$1.php [L]