Apache mod_rewrite only if request does not start with '/THEMES/'

前端 未结 4 887
借酒劲吻你
借酒劲吻你 2021-01-08 00:11

I\'m writing a CMS in PHP, and now I\'m working at the themes feature. I have a .htaccess file:

RewriteEngine ON
RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)$ index.p         


        
相关标签:
4条回答
  • 2021-01-08 00:28

    Do something like:

    RewriteRule ^THEMES - [L]
    

    That means: if the request starts with THEMES, just serve it.

    Another possible solution is:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d 
    

    That means: do not rewrite if the request resolves to an existing file (first line) or directory (second line).

    Maybe you should read the documentations, is really well written.

    0 讨论(0)
  • 2021-01-08 00:29

    If you want to include css/js files while using url-rewriting use that tag to specify the main url.

    < base href="http://www.your-web-site-adress.com" >
    

    Then you may easily include your css/js files like that:

    < script src="/blabla.js" >
    

    it'll add base href as prefix.

    0 讨论(0)
  • 2021-01-08 00:43

    You could use an additional rule to stop the rewriting process:

    RewriteRule ^THEMES/ - [L]
    RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)$ index.php?m=$1
    RewriteRule ^([a-zA-Z][a-zA-Z0-9]*)/(.+)$ index.php?m=$1&p=$2
    
    0 讨论(0)
  • 2021-01-08 00:44

    Add this before your rewrite rules:

    RewriteCond %{REQUEST_URI} !^/THEMES/
    
    0 讨论(0)
提交回复
热议问题