htaccess重定向到带有url paramethers的子文件夹



我想将每个请求重定向到我的public/index.php文件。我试过

RewriteEngine On 

RewriteRule ^(.*)$ public/index.php?url=$1

看起来很好但不起作用的代码。我的目标是更改url表单http://example.com/?url=user/profile/2到http://example.com/user/profile/2.我的目录结构是

    • 公共
      • index.php
    • 供应商
    • .htaccess
    • composer.json

要处理像http://example.com/user/profile/2这样的URL,请在.htaccess文件中尝试以下规则集。将htaccess规则文件放入根目录。请确保在测试URL之前清除浏览器缓存。

Options -MultiViews
RewriteEngine ON
RedirectBase /ApadanaCMS/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/(.*)/?$ public/index.php?url=$1/$2/$3 [L]


或尝试以下规则,请确保一次只尝试以上或以下规则。

以上将适用于不存在的页面,使其适用于任何url(如您在问题中提到的(尝试:

Options -MultiViews
RewriteEngine ON
RedirectBase /ApadanaCMS/
RewriteCond %{REQUEST_FILENAME} !index.php [NC]
RewriteRule ^([^/]*)/([^/]*)/(.*)/?$ public/index.php?url=$1/$2/$3 [L]

以下是解决方案:取消注释(删除#(apache2中httpd.conf文件中的mod_rewrite.so模块。也在DocumentRoot "${SRVROOT}/htdocs"部分下将该文件中的AllowOverride none更改为AllowOverride All

这是.htaccess内容

RewriteEngine on
RewriteRule ^(.*)$ public/index.php?url=$1 [QSA,L]
RewriteRule ^()$ public/index.php?url=$1 [QSA,L]

但是,如果您需要在静态目录中获取静态文件,请在静态目录内添加一个新的.htaccess文件,其中包含RewriteEngine off内容

相关内容

  • 没有找到相关文章

最新更新