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如何实现?您实际上在寻找
前端控制器
(包括路由和调度)。您实际上在寻找
前端控制器
(包括路由和调度)。