Php htaccess在父文件夹不存在时跳过它

Php htaccess在父文件夹不存在时跳过它,php,.htaccess,redirect,mod-rewrite,Php,.htaccess,Redirect,Mod Rewrite,我现在有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,

我现在有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为网站的某些页面显示一个“父”文件夹。i、 emysite.com/parent/foo

我需要忽略url的“父”部分,不管我键入什么(想想CATCHALL),只要实际文件夹不存在该名称,然后重定向到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
  • 这就是你想要的吗

    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

    这项功能非常有效。。。我只需要改变我的css/js/img路径,这没什么大不了的。。。仍在尝试了解htaccess的窍门…谢谢!!这个很好用。。。我只需要改变我的css/js/img路径,这没什么大不了的。。。仍在尝试了解htaccess的窍门…谢谢!!