我最初在Stack Overflow (7个月前)。我没有收到任何答复,也无法进一步调查。到目前为止,我正在努力解决这个问题,非常感谢熟悉WP和htaccess的人的帮助。
不久前,我在一个有很多应用程序的站点的子目录中安装了Magento,Magento下载程序/安装程序取代了。我的根目录中的htaccess文件。
通过wordpress安装运行的自动备份碰巧没有捕获根文件夹中的少数文件。我没有后备人员。
如果我真的知道并理解其中的一切,这就不会那么糟糕了。htaccess文件。它是在多年的时间里慢慢创造出来的!
我所寻求的是一些重建援助。我已经遇到了一些问题。
例如,当我尝试访问wordpress文件夹以外的文件夹时,我会被重新路由到wordpress的404。
例如,我在子文件夹/代理中有一个代理应用程序,但如果我转到mysite。我在地址栏中看到的com/代理:mysite。com/proxy和wordpress 404。
在过去的几个月里,我非常喜欢学习越来越多的正则表达式,并且能够集中精力。htaccess重定向、规则等。因此,我不仅想解决这些问题,而且想了解它们是如何解决的。
这是我的根。htaccess现状(从我记录的一些杂项注释中总结出来:
<Files .htaccess>
order allow,deny
deny from all
</Files>
# Redirect
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteCond %{REQUEST_URI} !^/site/
#RewriteCond %{HTTP_HOST} ^www\\.
#RewriteRule (.*) http://mydomaint.com/site/$1 [R=301,L]
#</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteBase /site
#RewriteRule ^index\\.php$ - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !^/site/
#RewriteRule . /site/index.php [L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ site/index.php [L]
</IfModule>
我得到的印象是,代码中存在重复和冗余。而且它缺少一些行,无法在wordpress以外的子文件夹中查找(顺便说一下,它位于/站点中)。
我已经向您展示了被注释掉的内容,因为这可能有助于了解我的错误所在,或者确定应该如何设置它。
我需要的是所有请求:
我的域名。com/site www.mydomain。com/site-mydomain。com(无子文件夹)被定向到mydomain.com/site
对任何其他子文件夹(假设存在)的请求应转到所请求的文件夹(例如。mydomain.com/proxy
或mydomain.com/shop
传递到各自的文件夹/proxy
和/shop
).
对不存在的子文件夹的请求应发送到mydomain.com/site
我现在还不确定是否还有什么东西坏了,但如果我发现了,我可以把它带到桌子上。
我应该补充一点,我也试过这样做:命令允许,拒绝所有人
# Redirect
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/site/
RewriteCond %{HTTP_HOST} ^www\\.
RewriteRule (.*) http://jonathanevatt.com/site/$1 [R=301,L]
</IfModule>
但这件事有点奇怪。如果我浏览到
www.mydomain.com
(或
mydomain.com
) 最后,我在地址栏中找到了它,它出现在一个空白页面上(作为页面左上角的一行文本:
/home/jonathan/public_html/app/Mage.php was not found
这正是安装程序弹出我的后发生的事情。htaccess文件。我不知道在哪里或如何被征召入伍,因为我看不到任何东西。htaccess导致调用此地址。这很令人困惑。
ALSOI确实在我的htaccess文件中找到了一些规则的备份,这些规则用于重定向对我以前Joomla站点中各种类型内容的请求。这些规则是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /site/
RewriteRule ^en/Page-[0-9]+\\.html /site/blog/ [R=301,L]
RewriteRule article&id=([0-9]+) /?p=$1 [R=301,L] #CATCH ?option=com_content&view=article&id=307&catid=89&Itemid=55
RewriteRule ^articles-other-writing/(Page-[0-9]|index)\\.html /site/blog/ [R=301,L]
RewriteRule ^articles-other-writing/[a-zA-Z\\-]+/(Page-[0-9]|index)\\.html /site/blog/ [R=301,L]
RewriteRule ^what-is-love/([a-zA-Z0-9\\-\\/\\.\\_\\=\\?\\&]+) /site/blog/ [R=301,L]
RewriteRule ^media/audio/([0-9a-zA-Z_]+\\.mp3)$ /wp-content/uploads/audio/$1 [L,R=301]
RewriteRule ^[A-Za-z\\-]+/[a-z\\-]+/[a-z\\-]+/([0-9]+)\\-.+ /?page_id=$1 [R=301,L]
RewriteRule ^/swine-flu\\.html$ /site/tags/swine-flu/ [R=301,L]
RewriteRule ^events/event-descriptions/([A-Za-z\\-]+)\\.html$ /site/events/$1/ [R=301,L]
RewriteRule ^[0-9]{8}([0-9]*)\\/(articles|great-products|others-videos|jonathan-s-blog)[a-zA-Z0-9\\-\\/\\.]+ /?p=$1 [R=301,L] # CATCH POSTS 1
RewriteRule ^[0-9]{8}([0-9]*)\\/services[a-zA-Z0-9\\-\\/\\.]+ /?page_id=$1 [R=301,L] # CATCH PAGES 1
RewriteRule ^myblog[a-zA-Z0-9\\-\\/\\.] /site/blog/ [R=301,L] #CATCH MYBLOG
RewriteRule ^view-by-tag/([a-zA-Z\\-]+)/([a-zA-Z0-9\\-\\/\\.\\_\\=\\?\\&]+) /site/tags/$1/ [R=301,L]
我可能应该将它们集成到新的htaccess文件中,以防仍有指向旧Joomla系统上重要内容的链接。