Rewrite url with parameter and php request

Directories:   eventfinder - project folder

  • Localhost
    - project1
    - project2
    - eventfinder
    ---. Htaccess

User comes to http: // localhost / eventfinder / page and types 'randomevent123' after / eventfinder /

then php request happens to? event = randomevent123

$event = $_GET['event'];

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

      

and returns data from the database

I'm trying to rewrite my url, but I don't understand what the problem is ...

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

      

to

http://localhost/eventfinder/randomevent123

      

With .htaccess

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

      

But the request won't work.

+3


source to share


2 answers


Try the following:



  • Confirm mod_rewrite

    loaded
  • Make sure it AllowOverride

    allows htaccess to be processed
  • The following rule (inside the directory 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] 
    
          

+2


source


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /eventfinder/index.php?event=$1 [L]

      



You can !-f

and !-d

check the requested filename to make sure that the specified URL-address is not a file and not a directory before doing himself rewrite - it prevents recursive cycleindex.php

0


source







All Articles