1

我试过查看其他教程和示例,但没有什么适合我的场景。我的 htaccess 文件如下所示:

RewriteEngine on

rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.example.com/$1/ [R=301,L]

RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
RewriteRule ^view/([^/]+)/([^/]+)/?$ index.php?page=view&id=$1&title=$2

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([a-zA-Z0-9]+)
RewriteRule ^([a-zA-Z0-9]+)$ /%1/? [R=301,L]

ErrorDocument 404 /404

我正在使用 PHP,需要重写 /index.php?page=page&moreparamaters=1

但是我在服务器上还有一个名为 /admin/ 的文件夹,我想从该文件夹中的文件中删除 .php 扩展名,以便:

/admin/lol.php变成/admin/lol/

我有很多这些文件,所以我不能真正单独添加每个文件。如何在不影响我的 index.php 重写的情况下做到这一点?

谢谢

4

1 回答 1

2

你必须反过来想。假设所有文件都直接放在文件夹中(意思是没有子文件夹),这将起作用:

RewriteRule ^admin/([^\/]*)? /admin/$1.php [L,R]

然后在你的链接中你可以写 /admin/lol/ 或 /admin/lol,两者都会被重定向到 /admin/lol.php

于 2012-04-20T20:36:37.630 回答