PHP如何将url路径重定向到index.PHP

PHP如何将url路径重定向到index.PHP,php,.htaccess,url,redirect,Php,.htaccess,Url,Redirect,我目前有一个网站的URL与此模式 https://website.com/?p=something 其中p是请求的页面(如/?p=login) 出于SEO原因,我希望URL看起来像这样 https://website.com/login/ Redirect 301 /login/ https://website.com/?p=login 当然,我可以这样做重定向 https://website.com/login/ Redirect 301 /login/ https://website

我目前有一个网站的URL与此模式

https://website.com/?p=something
其中p是请求的页面(如/?p=login)

出于SEO原因,我希望URL看起来像这样

https://website.com/login/
Redirect 301 /login/ https://website.com/?p=login
当然,我可以这样做重定向

https://website.com/login/
Redirect 301 /login/ https://website.com/?p=login
但它会将用户浏览器中显示的URL更改回包含参数的URL


我的问题是,我怎么能有这样的URL
https://website.com/login/
但是在index.PHP内的PHP中,我可以像前面一样访问请求集页面或“路径”,比如
$page=$\u GET['p']。换句话说,我想重定向URL
https://website.com/login/
https://website.com/?p=login
但URL仍显示为
https://website.com/login/

我建议使用.htaccess文件将服务器的所有请求指向一个文件,例如index.php

# Rewrite Engine ON
RewriteEngine on

# Redirect everything to one file
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
之后,您可以编写一个路由器来处理URI组件

例如,有人调用sitename/login


您检测/登录并打开所需页面

是否可以对该规则进行例外?例如,对于/sidemap.xml?我试图添加以下条件
RewriteCond%{REQUEST_URI}^xml
但它仍在被重定向…上述操作仅适用于没有扩展的路径,因此无需更改它sitename/sitemap.xml将与sitemap/script.php一样工作。