【问题标题】:How to rewrite URL in htaccess for specific folders in PHP如何在 htaccess 中为 PHP 中的特定文件夹重写 URL
【发布时间】:2014-11-14 06:00:52
【问题描述】:

我在重写 URL 时需要帮助。这是给定的

Site URL: http://example.com:8000/myapp

当前的 htaccess

Allow from localhost

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 

我的网站在

/var/www/htdocs/myapp

虚拟主机配置

<VirtualHost *:8000>
    DocumentRoot "/var/www/htdocs"
    ServerName example.com
    ErrorLog "/var/log/apache2/custom/a_local_error_log"
    CustomLog "/var/log/apache2/custom/a_local_access_log" common
    <Directory "/var/www/htdocs">
            Options Indexes FollowSymLinks
            Require all granted
            Order allow,deny
            Allow from all
            AllowOverride All
    </Directory>
</VirtualHost>

问题是我的资产与应用程序位于同一文件夹中,但包含资产的代码是绝对的。示例:

/_js/jquery.js
/_js/myjs.js

是否可以改写成:

/_js/myqpp/jquery.js
/_js/myapp/myjs.js

谢谢!

【问题讨论】:

  • 所以你希望 /var/www/htdocs/_js/myapp/jquery.js 指向 /var/www/htdocs/_js/jquery.js?还是反过来?

标签: php apache .htaccess url-rewriting


【解决方案1】:

您可以在RewriteEngine on下方插入此规则:

RewriteRule ^(_js)/([^/.]+\.js)$ /$1/myapp/$2 [L,NC,R=302]

【讨论】:

  • 为什么是“呵呵”???您是否在评论中提交了足够的信息?你试过什么网址?您将此规则放在 htaccess 中的什么位置?
  • 按照您的指示,我将它放在“Rewrite Engine on”下方。我试过的网址是:http://example.com:8000/myapp
  • 再次阅读您的问题。我们正在解决的问题是将/_js/jquery.js 重定向到/_js/myapp/jquery.js。您需要使用此 URL:http://example.com:8000/_js/jquery.js 并查看是否被重定向。
  • 是的,我也试过了。但它没有重定向到所需的 URL
  • 如果您仔细阅读我的 cmets 并回答我提出的所有问题,我只能提供帮助。
【解决方案2】:

我相信类似下面的东西应该可以解决这个问题:

RewriteRule ^/_js/jquery.js$ /_js/myapp/jquery.js [NC,L]
RewriteRule ^/_js/myjs.js$ /_js/myapp/myjs.js [NC,L]

在你的其他重写规则之前尝试一下。

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 2015-12-03
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多