Php Mod Rewrite Htaccess用于假目录
我试图创建假目录,将特定参数重定向到特定子目录,如下所示:Php Mod Rewrite Htaccess用于假目录,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我试图创建假目录,将特定参数重定向到特定子目录,如下所示: From: www.example.com/username To: www.example.com/posts?uid=alex From: www.example.com/p/1234 To: www.example.com/posts?url=1234 从stackoverflow的其他问题来看,这是一个更复杂的例子,大多数答案都没有解释它是如何工作的,因此我无法得出如何解决这个问题的结论。试试: RewriteEng
From: www.example.com/username
To: www.example.com/posts?uid=alex
From: www.example.com/p/1234
To: www.example.com/posts?url=1234
从stackoverflow的其他问题来看,这是一个更复杂的例子,大多数答案都没有解释它是如何工作的,因此我无法得出如何解决这个问题的结论。试试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^p/([^/]+)$ /posts?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /posts?uid=$1 [L]
首先,您需要使所有链接看起来像这样:
www.example.com/username
www.example.com/p/1234
上面的重写规则将匹配/p/1234
(通过^p/([^/]+)$
)和/username
(通过^([^/]+)$
)并在内部将它们重写为/posts
URI。请注意,这不会更改浏览器位置栏中的URL,因为这是一个外部重定向。如果有人进入www.example.com/posts?uid=alex,URL将保持不变。尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^p/([^/]+)$ /posts?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /posts?uid=$1 [L]
首先,您需要使所有链接看起来像这样:
www.example.com/username
www.example.com/p/1234
上面的重写规则将匹配
/p/1234
(通过^p/([^/]+)$
)和/username
(通过^([^/]+)$
)并在内部将它们重写为/posts
URI。请注意,这不会更改浏览器位置栏中的URL,因为这是一个外部重定向。如果有人输入www.example.com/posts?uid=alex
,则URL将保持不变。通过httpd.conf
启用mod_rewrite
和.htaccess
,然后将此代码放入文档根目录/.htaccess
文件:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([^/]+)/?$ /posts?url=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /posts?uid=$1 [L,QSA,NC]
通过
httpd.conf
启用mod_rewrite
和.htaccess
,然后将此代码放入文档根目录下.htaccess
文件:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([^/]+)/?$ /posts?url=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /posts?uid=$1 [L,QSA,NC]
啊,它似乎不起作用,因为在我的实际文件posts.php上,我用javascript获取参数,并将其发送到api,api不会记录任何内容。@ATs如果用javascript获取参数,那么只需使用javascript执行所有假目录内容,你根本不需要mod rewrite,怎么能做到呢?啊,这似乎不起作用,因为在我的实际文件posts.php上,我用javascript获取参数并将其发送到api,这样就不会记录任何内容了。@ATs如果你用javascript获取参数,那么就用javascript执行所有的伪目录操作,您不需要在allah进行mod rewrite如何实现?您实际上在寻找
前端控制器
(包括路由和调度)。您实际上在寻找前端控制器
(包括路由和调度)。