我目前有 www.mysite.com
我只有一个子文件夹...www.mysite.com/admin
我目前的 .htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]*)$ /page.php?id=$1 [L]
因此,目前如果有人转到 mysite.com/admin,则可以访问子文件夹并转到登录页面。
但是,如果有人键入 mysite.com/foo 它会更改为 mysite.com/page.php?id=foo 这正是我想要的。
但是,出于营销目的,我需要让URL为网站的某些页面显示"父"文件夹。 即 mysite.com/parent/foo
无论我键入什么(Think CATCHALL),我都需要忽略 url 的"父"部分,只要不存在具有该名称的实际文件夹,然后重定向到 mysite.com/page.php?id=foo
我目前的所有搜索都显示了如何忽略父级并重新路由到索引页面,但没有显示如何忽略"父级",然后将"子级"作为变量并将其附加到带有 id 的页面名称。
帮助。
谢谢。
这是你想要的吗?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:[^/]+/)?([^/]+)$ /page.php?id=$1 [NC,L]
上面的规则可以选择匹配父文件夹(不存在的文件夹),并从以下位置重写请求:
- example.com/fakefolder/foo
自
- example.com/page.php?id=foo