php - 如何发送带有正斜杠而不是问号的获取请求?

标签 php apache .htaccess mod-rewrite

我正在开发一个 PHP 应用程序,我需要在其中使用正斜杠代替 get 请求中的问号。喜欢:

www.example.com/article?aid=10&aname=my-article

应该改为

www.example.com/article/10/my-article

以下是我的 .htaccess:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/$ http://example.com/$1 [R=301,L] 

# Redirect external .php requests to extensionless url 
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
RewriteRule ^(.+)\.php$ http://example.com/$1 [R=301,L] 

# Resolve .php file for extensionless php urls 
RewriteRule ^([^/.]+)$ $1.php [L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^articles/(.*)$ articles?q=$1 [L,QSA,B]

我尝试了很多,但找不到解决方案。如何做到这一点?

最佳答案

您可以使用此规则将 /article/foo/bar 重写为 /article?aid=foo&aname=barRewriteEngine on

下方添加以下内容
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^article/([^/]*)/([^/]+)/?$ /article?aid=$1&aname=$2 [L,QSA,B]

关于php - 如何发送带有正斜杠而不是问号的获取请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027378/

相关文章:

linux - catalina.out 中有很多(权限被拒绝)

javascript - 上传站点文件,index.html 或 home.html

php - 从 php ://input 获取 header 信息

php - CodeIgniter,从模型到 View 显示 MySQL 查询,最佳实践

apache - 如何访问vagrant guest 服务器名称?

linux - 使用 sudo 的 root 和用户的不同路径变量

php - 使用 .htaccess 文件使用带根目录的子目录在 PHP 和 XAMPP 中重写 url

php - 从 Nginx 中的子目录运行辅助 PHP 应用程序

php - 按时间戳分组MYSQL输出空行

php - MySQL从表中选择数据并内连接来自另外两个相同表的所有选择