php 动态参数到 url with htaccess

php dynamic parameters to url with htaccess

我正在尝试通过使用基于斜杠的 url.

更改 php 参数来使 SEO 友好 url

我想
mysite.com/TopList.php?tl=ToplistName&fr=2021-02-10&to=2021-02-20 进入: mysite.com/ToplistName/2021-02-20/2021-02-20

我重写 url 成功了,但是我的 none 引用了正确的目录路径,但我没有得到 css,js 和文件路径从链接中断开。

这是我现在在 .htaccess 文件中的内容:

RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)?$ TopList.php?tl=&fr=&to=

任何人都可以帮助我在 .htaccess 文件中解决这个问题?

根据您显示的示例,您能否尝试以下操作。 请确保在测试您的 URL 之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/(\d{4}-\d{2}-\d{2})/(\d{4}-\d{2}-\d{2})/?$  TopList.php?tl=&fr=&to= [L]

我通过执行以下操作解决了这个问题:

  1. 添加到html:
    <base href="http://example.com/">

  2. 添加到 .htaccess:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    #1 更改完整查询
    重写规则 ^([^/.]+)/([^/.]+)/([^/.]+)/?$ TopList.php?tl=$1&fr=$2&to=$3
    #2 仅更改第一个着陆页
    重写规则 ^([^/.]+)/?$ TopList.php?tl=$1

这给了我以下结果:
mysite.com/TopList.php?tl=ToplistName ==> mysite.com/ToplistName
mysite.com/TopList.php?tl=ToplistName&fr=2021-02-10&to=2021-02-20 ==> mysite.com/ToplistName/2021-02-10/2021-02- 20