这里看起来有很多关于RewriteRules,相对路径和重定向但没有更改URL的问题 - 但是,在我的所有搜索中,它们似乎都没有回答我的具体情况。
这是我当前的.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond {REQUEST_FILENAME} !^images
RewriteRule ^files(.*)$ ../../fileManager/server/php/files$1 [L]
基本上这是做什么的,如果某人输入的URL包含单词" files"在根目录之后,它然后将它们重定向到一个路径,该路径是两个目录,实际上包含该文件。
例如,如果您转到" http://www.mydomain.com/files/username/myImage.jpg",它实际上会将您重定向到" http://s281192971.onlinehome.us/cms/fileManager/server/php/files/username/myImage.jpg"。
问题在于它在本地运行良好,但当我将其上传到我的服务器时,它会停止工作。
我发现这方面的一种方法是只指定文件路径的绝对路径,如下所示:
RewriteRule ^files(.*)$ http://s281192971.onlinehome.us/cms/fileManager/server/php/files$1 [L]
那"工作" - 问题是,它也改变了URL。我希望保留用户输入的网址(http://www.mydomain.com/files/username/myImage.jpg",而不是绝对路径。
这可能吗?
答案 0 :(得分:1)
我没有尝试这个,但文档声明您可以使用URL路径进行替换。
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
我的猜测就是让你的规则如下:
RewriteRule ^cms/mysite/files(.*)$ /fileManager/server/php/files$1 [L]