【问题标题】:URL Rewrite with parameter and php query使用参数和 php 查询重写 URL
【发布时间】:2017-11-07 11:40:56
【问题描述】:

目录: eventfinder 是项目文件夹

  • 本地主机
    -- 项目1
    -- 项目2
    -- 事件查找器
    --- .htaccess

用户来到页面http://localhost/eventfinder/并在/eventfinder/之后输入'randomevent123'

然后 php 查询发生在 ?event=randomevent123

$event = $_GET['event'];

$stmt = $conn->prepare("SELECT * FROM events WHERE name = :name");
$stmt->bindParam(":name", $event);
$stmt->execute();

并从数据库中返回数据

我正在尝试重写我的网址,但我不明白问题出在哪里...

http://localhost/eventfinder/index.php?event=randomevent123

http://localhost/eventfinder/randomevent123

使用 .htaccess

RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?event=$1 [L] 

但是查询不起作用。

【问题讨论】:

  • RewriteRule ^eventfinder/([^/]+)/?$ /index.php?event=$1 [L] 你暂时没有考虑到/eventfinder/
  • @CD001 我改变了你的建议后什么都没发生
  • RewriteEngine On RewriteRule ^eventfinder/([^/]*)$ /eventfinder/index.php?event=$1 [L]
  • ^ 哦,是的,我也错过了结果路径中的/eventfinder/ :\ ... 除非/eventfinder 是一个实际目录并且那是 .htaccess文件驻留?

标签: apache .htaccess mod-rewrite url-rewriting friendly-url


【解决方案1】:

尝试以下方法:

  1. 确认mod_rewrite已加载
  2. 检查AllowOverride 是否允许htaccess 解析
  3. 以下规则(在eventfinder 目录内):

    RewriteEngine On
    RewriteBase /eventfinder/
    
    RewriteCond %{THE_REQUEST} ^GET\ /eventfinder/index\.php\?event=([^\s&]+) [NC]
    RewriteRule ^index\.php$ %1 [R,L,QSD]
    
    RewriteRule ^(?!index\.php([^/]+))$ index.php?event=$1 [L] 
    

【讨论】:

  • 我从 httpd.conf 更改了这些设置并重新启动了 apache,但仍然无法正常工作。 LoadModule rewrite_module libexec/apache2/mod_rewrite.so 我改变了 AllowOverride All Require allgranted Apache 版本 2.4.25
  • @Troutfisher 需要为您的DOCUMENT_ROOT 的目录激活AllowOverride。我当然希望不是/
【解决方案2】:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /eventfinder/index.php?event=$1 [L]

您可以让我们 !-f!-d 检查请求的文件名,以确保输入的 URL 不是文件并且不是目录,然后再执行重写本身 - 它可以防止 index.php 上的递归循环

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2011-11-16
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多