0

我的.htaccess文件有一些问题。

我想显示这个 URL 的内容:

http://mywebsite.com/admin/payments/invoices/view/index.php?id=123456

当我访问这个时:

http://mywebsite.com/admin/payments/invoices/view/123456/

这是我的实际 .htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteBase /admin/payments/invoices/
RewriteRule ^/view/([0-9]+)/(index.php)?$ /view/index.php?id=$1 [L,QSA]

你有什么主意吗?

谢谢!

4

3 回答 3

1

如果您确实有该view目录,那么最简单的方法是将其放在该.htaccess 目录中(即{DOCUMENT_ROOT}/admin/payments/invoices/view/.htaccess):

Options +FollowSymlinks
RewriteEngine On

RewriteBase /admin/payments/invoices/view
RewriteRule ^(\d+)$  index.php?id=$1 [L,QSA]

左侧的 index.phpRewriteRule不是必需的(实际上,我希望它不起作用:DirectoryIndex在这个阶段不应该在 URI 中注入 - 除非其他一些RewriteRule有效?),也不是/ 结尾RewriteBase

我在 Apache/2.2.21 上测试了上面的,但是以后的版本模块规则是一样的。

于 2012-08-23T22:42:00.270 回答
0

试试这个:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^.*admin/payments/invoices/view/index\.php\?id=([0-9]+) admin/payments/invoices/view/$1/index.php [L]

</IfModule>
于 2012-08-19T21:12:23.730 回答
0

尝试将其放入文档根目录的 htaccess 文件中:

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)
RewriteRule ^admin/payments/invoices/view/index\.php$ /admin/payments/invoices/view/%1/index.php [L]

因此,当您http://mywebsite.com/admin/payments/invoices/view/index.php?id=123456在浏览器的 URL 地址栏中输入时,您将在/admin/payments/invoices/view/123456/index.php. 由于完全不清楚您真正想要什么,以防万一您想要相反:

RewriteEngine On
RewriteRule ^admin/payments/invoices/view/([0-9]+)/(index.php)?$ /admin/payments/invoices/view/index.php?id=$1 [L,QSA]
于 2012-08-19T22:12:42.743 回答