Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用参数和php查询重写URL_Apache_.htaccess_Mod Rewrite_Url Rewriting_Friendly Url - Fatal编程技术网

Apache 使用参数和php查询重写URL

Apache 使用参数和php查询重写URL,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,Apache,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,目录: eventfinder是项目文件夹 本地主机 --项目1 --项目2 --eventfinder ---.htaccess 用户来到页面并在/eventfinder之后键入“randomevent123”/ 然后php查询使用?event=randomevent123进行 $event = $_GET['event']; $stmt = $conn->prepare("SELECT * FROM events WHERE name = :name"); $stmt->b

目录: eventfinder是项目文件夹

  • 本地主机
    --项目1
    --项目2
    --eventfinder
    ---.htaccess
用户来到页面并在/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

使用.htaccess

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

但是查询不起作用。

请尝试以下方法:

  • 确认已加载
    mod_rewrite
  • 检查是否允许htaccess解析
  • 以下规则(在
    eventfinder
    目录中):


  • 你可以告诉我们
    -f
    -d
    在重写之前检查请求的文件名,以确保正在键入的URL不是文件,也不是目录-它防止在
    index.php

    重写规则^eventfinder/([^/]+)/?$/index.php?event=$1[L]上出现递归循环
    您目前没有考虑到
    /eventfinder/
    。@CD001在重写规则^eventfinder/([^/]*)$/eventfinder/index.php?event=$1[L]^是的,我也错过了结果路径中的
    /eventfinder/
    之后,什么也没有发生:\。。。除非
    /eventfinder
    是一个实际的目录,并且.htaccess文件就位于这个目录中,否则我从httpd.conf更改了这些设置并重新启动了apache,但仍然无法工作。LoadModule rewrite_module libexec/apache2/mod_rewrite.so我更改了AllowOverride All Require All Require All allowed Apache version 2.4。25@Troutfisher需要为您的
    文档根目录激活
    AllowOverride
    。我当然希望它不是
    /
    RewriteEngine On
    RewriteRule ^([^/]*)$ /index.php?event=$1 [L] 
    
    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] 
    
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ /eventfinder/index.php?event=$1 [L]