我目前正在运行一个包含750页.html网页的网站(是的,我知道这是一个愚蠢的想法,但我是新手)。我想把它们移到php。我真的不想设置750个单独的301重定向并将每个页面重写为.php
我听说我可以使用htaccess了。谁知道怎么做?
还有一些问题 -
抱歉愚蠢的问题,但我还在学习。
答案 0 :(得分:1)
祝贺750页的网站 - 你必须付出一些努力。
要收集当前的页面列表,请使用名为xenu的工具创建导出到Excel。然后,您可以在b列中轻松地将文件名称更改为PHP,并创建.htaccees文件。
但是你为什么要750个php文件?如果您有大量数据页,请将其设为一页并吸入HTML主内容并引用一页。如果您有一个名为warehouse-depot-22-row-44.html的页面,则将其更改为show-warehouse-row.php?depot = 22& row = 44并仅返回该内容。这将显着减少您的页数并开始使用数据库来呈现内容。
答案 1 :(得分:0)
对于重定向,您可以使用Apache Module mod_rewrite:https://httpd.apache.org/docs/current/mod/mod_rewrite.html
答案 2 :(得分:0)
您可以使用网址重写将特定文件名请求与正则表达式匹配,然后决定匹配时重定向的位置
RewriteRule ^myname/?$ myname.php [NC,L]
http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/
答案 3 :(得分:0)
取决于您拥有的结构。 您希望用户在其自然位置访问它们吗?
/public_html/folder1/file.php
user would access like
mydomain.com/folder1/file
或者您想以不同方式映射它们?
我个人认为我会使用重写规则将所有请求映射到我的/public_html/index.php,并使用php(例如使用include)映射请求。这提供了极大的灵活性,而且您的应用程序只有一个入口点,这非常有用,因为您可以轻松地保持对应用程序流的控制。
.htaccess看起来像这样
#
# Redirect all to index.php
#
RewriteEngine On
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_URI} !^/index\.php
# RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?))$ [NC]
RewriteCond %{REQUEST_URI} (/[^.]*|\.)$ [NC]
RewriteRule .* index.php [L]
当然我将所有不可直接访问的文件(除了索引和css,js,图像等之外的所有文件)放在public_html之外的文件夹中,以确保没有用户可以直接访问它们;)
答案 4 :(得分:0)
我有一个类似的(但更小)网站经历了同样的事情。
我的.htaccess中有这个:
RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]
这有助于将.html地址的访问者重定向到您的.php地址。
你希望有一个IDE(我推荐Aptana),你可以在项目范围内使用一些查找/更改功能,希望有一些时间和耐心从.html到.php获取你的内部链接。
但是,我提醒你一点 - 也许现在是时候研究基于数据库的CMS了,比如Wordpress或Drupal?