简体   繁体   中英

Apache mod_rewrite rule for sub directory

I am trying to set up a rewrite rule so that anything after localhost/test/{this} gets forwarded to localhost/test/index.php?{here}

I have access to the server and configuration currently looks like this:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    <Directory /var/www/test/>
            AllowOverride All
            RewriteEngine On
            RewriteBase /
            RewriteRule ^(.*)$ index.php?$1      
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

But at the moment, instead of showing /localhost/test/index.php?something when visiting localhost/test/something it shows localhost/index.php so it's rewriting to the wrong place.. any ideas? Thanks

create .htaccess file in /var/www/test

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Resolved.. I found that whenever I included AllowOverride All it redirected to /index.php, then spotted I'd left a .htaccess file in there from testing earlier that was messing things up. Removed, updated my rule and now working. Thanks for help!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM