php - htaccess - 将所有字符作为 get 请求

标签 php mysql regex .htaccess

真实内容位于domain.com/view.php?id=image_id

我希望可以通过 domain.com/view/image_id 访问它

以下内容当前用于获取 .php 文件扩展名。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

将以下内容附加到 htaccess 不起作用:

RewriteRule ^view/([A-Za-z0-9]+). /view.php?id=$1 [L, QSA]

另外,我可以接受 view.php 之后的所有内容吗? (view.php?id=) 被纳入 php 文件,从那里我可以用斜杠将所有内容分开并实现它们的数据。

我在 stackoverflow 和其他地方查看了许多解决方案,但要么它们不适用于我,要么我的服务器出了问题。无论哪种方式,我都会收到内部 500 服务器错误。谢谢。

最佳答案

您需要将 View 规则放置在更通用的 php 扩展规则之前:

RewriteEngine On

RewriteRule ^view/([A-Za-z0-9]+)$ /view.php?id=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

此外,您不希望在 L, 之后有空格。

关于php - htaccess - 将所有字符作为 get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188044/

相关文章:

php - 如何从 PHP session 数组中删除变量

javascript - Ajax 未提交给 PHP

mysql - 带有 mysql 问题的 Rails 3

Mysql使用通配符提高搜索性能(%%)

regex - 为什么 sed 的这个正则表达式在 Makefile 中中断?

javascript - JS 将长文本替换为较小的文本

php - Wordpress:按列对帖子进行排序的最佳方式

php - Paypal 是否为直接借记卡 API 提供 Paypal Rest API?

mysql - 仅当 `in` 子句中的值存在时才返回值

java - 模式中的规范等价